在 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");