我使用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中设置域和机器密钥并没有解决问题,这给我带来了更多问题。
答案 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/