所以我认为我的问题是我有一个使用标准表单身份验证的MVC网站和一个更适合ASP.NET身份的MVC。
我要做的是配置我的Owin身份验证以读取并接受由标准MVC表单auth站点生成的身份验证cookie。一切都配置如下,但我似乎无法让Owin接受cookie。
app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ExternalCookie);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
AuthenticationMode = AuthenticationMode.Active,
LoginPath = new PathString("/Account/Login"),
CookieHttpOnly = true,
CookieName = "myAuthCookie",
CookieDomain = ".mydomain.com",
CookiePath = "/",
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
答案 0 :(得分:5)
你想要完成的是不可能的。 Cookie身份验证中间件是基于声明的,并将与身份相关联的所有声明序列化到Cookie中的身份验证票证中。表单身份验证存储用户名和一些其他数据,但它对声明一无所知。基本上,放在cookie中的身份验证票证在两种情况下完全不同,您将无法获得cookie身份验证中间件读取由FAM创建的票证,反之亦然。