【发布时间】:2015-11-13 19:26:44
【问题描述】:
当用户切换应用程序时,我需要更改 cookie 的名称。为此,我更改了 cookie 名称选项,例如 Asp.Net Identity and cookie names。
但不幸的是,没有 cookie 发送到浏览器,因此用户永远不会进行身份验证,我不知道为什么,而且我没有想法......
这是 ConfigureOAuth 中的代码:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Home/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<IMS_UserManager, IMS_User, int>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (claim) => int.Parse(claim.GetUserId()))
},
CookieDomain = ConfigurationManager.AppSettings["IdentityCookieURL"].ToString()
CookieName = ".Asp.Net." + AuthenticationCookieName,
CookieHttpOnly = true
});
我做错了什么? (AuthenticationCookieName 是“IMS”,所以里面没有花哨的字符)。
谢谢,
PS:WebApp 都在 localhost 中,但端口不同(在 IDE 中运行,但在生产环境中,它们将位于 Intranet 服务器上,具有相同的配置)...
PS2:问题确实出在CookieName = ".Asp.Net." + AuthenticationCookieName, 线上,因为当我删除它时,它就像一个魅力......
HttpContext.Current.User.IsAuthenticated 总是返回 false 并且使用 chrome 在 'localhost' 中没有 cookie...
【问题讨论】:
-
您是否尝试过从 cookie 名称中删除句点(句点)?
-
改成
CookieName = "AspNetCookieName",还是一样 -
看进一步的 doco 我可以看到它应该没问题,无论如何
标签: asp.net-mvc cookies asp.net-identity