我想为通过移动应用程序登录的用户设置自定义 ASP.NET Core Identity cookie 名称。 我从用户代理字符串中获取此信息。
我想知道如何配置不同的默认
.Aspnetcore.Identity.Application
cookie 名称。
我正在使用.NET8 和 Umbraco 13
我尝试创建自定义
CookieAuthenticationEvents
:
public class CustomCookieAuthenticationEvents : CookieAuthenticationEvents
{
public override Task SigningIn(CookieSigningInContext context)
{
var userAgent = context.HttpContext.Request.Headers["User-Agent"].ToString();
// Define logic for naming cookies based on the user-agent
if (userAgent.Contains("custom-user-agent"))
{
context.Options.Cookie.Name = "MobileAuthCookie";
}
else
{
context.Options.Cookie.Name = "DefaultAuthCookie";
}
return base.SigningIn(context);
}
}
并注册:
builder.Services.ConfigureApplicationCookie(cookie => cookie.EventsType = typeof(CustomCookieAuthenticationEvents));
但是当我登录时,
SigningIn
方法永远不会被执行。
要更改 cookie 的名称,则它由身份验证 cookie 处理程序控制,您可以使用以下方式控制它:
.AddCookie("cookie", options =>
{
options.Cookie.Name = ".ASPXAUTH";
});