User.Identity.Name通过WIF身份验证后,为空 [英] User.Identity.Name is null after authenticate via WIF
问题描述
我使用WIF登录我的器件的应用。一切似乎是确定(日志,重定向到网站等等),但是当我在鳕鱼的异常尝试使用 User.Identity.Name
被抛出 - 用户
是null.Any想法我做错了吗?我在2012年VS生成工作web.config中的部分看起来像如下:
< system.identityModel>
< identityConfiguration>
< audienceUris>
<增加价值=HTTP:// XXX //>
< / audienceUris>
< issuerNameRegistry TYPE =System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry,System.IdentityModel,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089>
< trustedIssuers>
<加入指纹=YYYYNAME =https://开头ZZZ/>
< / trustedIssuers>
< / issuerNameRegistry>
< / identityConfiguration>
< /system.identityModel>
和
< system.identityModel.services>
< federationConfiguration>
<的CookieHandler requireSsl =FALSE/>
< wsFederation passiveRedirectEnabled =真发行人=HTTPS://zzz/Secure/FederatedLogin.ashx的境界=HTTP:// XXXrequireHttps =FALSE/>
< / federationConfiguration>
< /system.identityModel.services>
在使用WIF工作,你应该使用Thread.CurrentPrincipal.Identity.Name代替User.Identity.Name。
在这里阅读更多: http://msdn.microsoft.com/en-我们/杂志/ ff872350.aspx ,以了解更多有关Windows标识基础
I'm using WIF to log in my appication. Everything seems to be ok (logging,redirecting to site etc),but when i try use User.Identity.Name
in my cod exception is being thrown-User
is null.Any ideas what i'm doing wrong? I work on VS 2012. Generated part in web.config looks like below:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://xxx/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="yyyy" name="https://zzz" />
</trustedIssuers>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
and:
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="https://zzz/Secure/FederatedLogin.ashx" realm="http://xxx" requireHttps="false" />
</federationConfiguration>
</system.identityModel.services>
When working with WIF you should use Thread.CurrentPrincipal.Identity.Name instead of User.Identity.Name.
Read more here: http://msdn.microsoft.com/en-us/magazine/ff872350.aspx to learn more about Windows Identity Foundation
这篇关于User.Identity.Name通过WIF身份验证后,为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!