在我的应用中,我有一个外部联合身份验证提供程序,该提供程序在登录后重定向到回调操作。
在此回叫中,我实际上得到了所有索赔,并将其添加到新的索赔数组中,然后添加了新的[ClaimsPrincipal],最后将该主体添加到owin登录方法中
Request.GetOwinContext().Authentication.SignIn(MYPRINCIPAL)
当我检查User.Identity时,在回调操作中执行了此操作之后,我的AuthenticationTypes是ApplicationCookie。我发现一切正常,并且用户拥有所有声明而没有问题。
当重定向到另一个控制器中的另一个动作时,我发现身份AuthenticationTypes为空,也没有声明,当然用户被认证为假。
在我的startup.auth类中,使用
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
所以关于我做错了什么或错过了什么的任何想法!