在 ASP.NET 5 中命名 cookie
Naming cookies in ASP.NET 5
在我的 ASP.NET 5 MVC 6 应用程序中,我只使用没有 ASP.NET 身份的 cookie 中间件——如本文档所述:https://docs.asp.net/en/latest/security/authentication/cookie.html
我也在使用社交身份验证,即 Facebook、Google 等。所以用户通过社交网络进行身份验证,然后我使用 cookie 中间件来管理用户的会话。
在应用程序中,我需要创建两个 cookie,即新用户完成注册前的临时 cookie 和注册完成后的常规 cookie。
我想为这些 cookie 命名,并能够通过它们的名称查找它们。我该怎么做?
您可以直接在中间件选项中替换默认的cookie名称:
app.UseCookieAuthentication(options => {
options.AuthenticationScheme = "Instance1";
options.CookieName = "MyCookie";
});
app.UseCookieAuthentication(options => {
options.AuthenticationScheme = "Instance2";
options.CookieName = "MyOtherCookie";
});
要检索与特定方案关联的 ClaimsPrincipal
实例,请使用 AuthenticateAsync
:
var principal = await context.Authentication.AuthenticateAsync("Instance2");
在我的 ASP.NET 5 MVC 6 应用程序中,我只使用没有 ASP.NET 身份的 cookie 中间件——如本文档所述:https://docs.asp.net/en/latest/security/authentication/cookie.html
我也在使用社交身份验证,即 Facebook、Google 等。所以用户通过社交网络进行身份验证,然后我使用 cookie 中间件来管理用户的会话。
在应用程序中,我需要创建两个 cookie,即新用户完成注册前的临时 cookie 和注册完成后的常规 cookie。
我想为这些 cookie 命名,并能够通过它们的名称查找它们。我该怎么做?
您可以直接在中间件选项中替换默认的cookie名称:
app.UseCookieAuthentication(options => {
options.AuthenticationScheme = "Instance1";
options.CookieName = "MyCookie";
});
app.UseCookieAuthentication(options => {
options.AuthenticationScheme = "Instance2";
options.CookieName = "MyOtherCookie";
});
要检索与特定方案关联的 ClaimsPrincipal
实例,请使用 AuthenticateAsync
:
var principal = await context.Authentication.AuthenticateAsync("Instance2");