【问题标题】:ASP.Net Identity (2.2.1) Cookie on different webapps in same hostASP.Net Identity (2.2.1) 同一主机中不同 webapps 上的 Cookie
【发布时间】: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


【解决方案1】:

假设您的意思是您在 localhost:xxx 上运行站点,我不相信当您尝试将 cookie 域设置为完全不同的东西时这会起作用(如果可以的话,想象一下安全漏洞)。

您应该将 cookie 域设置为您的基本域,并在您想要共享它的所有应用程序中执行相同的操作,例如:

CookieDomain = ConfigurationManager.AppSettings["IdentityCookieURL"].ToString()

因此,在生产环境中,您可以将应用设置值设置为 ims.com,但在开发环境中将其设置为 localhost(您可以针对不同环境使用 web.config 转换)

【讨论】:

  • 感谢 Bron Squire 指出这一行,你是完全正确的,但这对我的问题没有帮助(我已经更准确地编辑了我的问题)。如果我完全删除 CookieDomain,结果是一样的 :(
猜你喜欢
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
相关资源
最近更新 更多