Owin使用外部表单身份验证cookie

时间:2014-11-13 07:54:00

标签: c# asp.net asp.net-mvc authentication owin

所以我认为我的问题是我有一个使用标准表单身份验证的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))
    }
});

1 个答案:

答案 0 :(得分:5)

你想要完成的是不可能的。 Cookie身份验证中间件是基于声明的,并将与身份相关联的所有声明序列化到Cookie中的身份验证票证中。表单身份验证存储用户名和一些其他数据,但它对声明一无所知。基本上,放在cookie中的身份验证票证在两种情况下完全不同,您将无法获得cookie身份验证中间件读取由FAM创建的票证,反之亦然。