User.Identity.Name通过WIF身份验证后,为空 [英] User.Identity.Name is null after authenticate via WIF

查看:133
本文介绍了User.Identity.Name通过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 =htt​​ps://开头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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆