【发布时间】:2013-11-14 20:10:24
【问题描述】:
我创建了一个自定义主体类
public class FacebookPrincipal : ClaimsPrincipal
{
public JObject Data { get; set; }
}
我想使用它。当用户登录时,我尝试设置
var fbP = new FacebookPrincipal { Data = user.Data };
Thread.CurrentPrincipal = fbP;
AuthenticationManager.User = fbP;
HttpContext.User = fbP;
设置后它就可以工作,但是当我去 ho home/index 时,值丢失了
var user = HttpContext.GetOwinContext().Authentication.User;
var bbbb = this.User;
var cccc = ClaimsPrincipal.Current;
上述所有方法都返回ClaimsPrincipal 类型的主体,而转换为FacebookPrincipal 则返回null。
如何设置自定义主体?
【问题讨论】:
-
Claims属性的枚举返回什么? -
[0] = {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: #########}-[1] = {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name: ####}-[2] = {http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider: ASP.NET Identity} -
这是我在类似问题上发布的解决方案:http://stackoverflow.com/a/25731422/264672
标签: c# asp.net-mvc authentication asp.net-mvc-5 owin