是否可以从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">