获取当前登录用户的SecurityToken

时间:2015-11-06 20:05:54

标签: c# asp.net-mvc-4 .net-4.5 wif claims-based-identity

是否可以从HttpContext.Current.User获取System.IdentityModel.Tokens.SecurityToken对象?

这就是我能够得到的:

IPrincipal userPrincipal = HttpContext.Current.User; 
WindowsIdentity userIdentity = userPrincipal.Identity as WindowsIdentity; 
IntPtr token = userIdentity.Token; 

但是,由于以下错误,我无法获得SecurityToken:

Cannot convert type 'System.IntPtr' to 'System.IdentityModel.Tokens.SecurityToken' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion 

更新

看起来获取SecurityToken的方法是使用BootstrapContext:

BootstrapContext bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as BootstrapContext;
var token = bootstrapContext.SecurityToken;

并且,在web.config中:

<identityConfiguration saveBootstrapContext="true">

0 个答案:

没有答案