OWIN从子域单独登录

时间:2015-07-07 14:55:23

标签: c# asp.net-mvc owin

我使用OWIN作为我的第二个网站,一切都很好,但是当用户登录我的第一个网站mysite.com然后转到second.mysite.com时,我遇到了麻烦我明白了:错误处理您的请求时出错。我猜这是因为我的第一个网站使用与第二个网站相同的cookie名称。以下是我的Startup.Auth示例:

public partial class Startup
{
    public void ConfigureAuth(IAppBuilder app) {
        app.UseCookieAuthentication(new CookieAuthenticationOptions {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/account/signin"),
            CookieDomain = ".mysite.org",
            CookieName = "second.mysite.org"
        });
    }
}

我尝试添加CookieName希望它会有所帮助,但我仍然得到同样的错误。总结一下,我不希望我的第二个项目使用与第一个相同的登录。还有另一个旧的子域名使用与我的第一个站点相同的登录名,我不希望这个新站点。

更新: 当我删除antiforgerytoken时,我停止了这些错误。在web.config中设置域和机器密钥并没有解决问题,这给我带来了更多问题。

1 个答案:

答案 0 :(得分:0)

cookie名称必须相同,但是您必须在不同的服务器上使用相同的机器密钥,否则cookie将无法被其他计算机解密:

<system.web>
  <machineKey decryptionKey="<some long key>" validationKey="<another long key>" />
</system.web>

更多信息: https://msdn.microsoft.com/en-us/library/w8h3skw9%28v=vs.85%29.aspx 并设置: http://www.alexboyang.com/2014/05/28/sso-for-asp-net-mvc4-and-mvc5-web-apps-shared-the-same-domain/