我正在使用MVC 5中的用户管理进行SSO应用程序,但我无法在应用程序之间共享cookie,例如
http:// SSO http:// app
IIS中的不同站点,我认为这就像跨域,所以在app2中我在startup.auth中有这样的东西app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieName = "sharedcookie",
CookieDomain = "SSO",
CookieHttpOnly = false,
//CookieDomain = "localhost",
AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
更新 感谢克里斯普拉特的回答,没有办法做到这一点,这导致我另一个问题 我可以在
之间共享一个cookiename1.domain.com/app1和 name2.domain.com/app2
使用OWIN
答案 0 :(得分:1)
今天发现这篇关于代码项目的文章,当时我想知道同样的事情,不是100%肯定,但对我来说肯定是可能的。
第1部分 - 设计: http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic
第2部分 - 实施: http://www.codeproject.com/Articles/114484/Single-Sign-On-SSO-for-cross-domain-ASP-NET-appl
当然,这并不是在域之间共享cookie,而是使用SSO用户管理Web服务(这对我来说似乎很好!)
注意:我知道链接只是不鼓励答案,但这些文章很大,任何想要告诉我如何正确做到这一点的人都欢迎:)