ADプロバイダーMembership.GetUser()は次のエラーを引き起こします:“パラメーター「ユーザー名」は空にできません。”

StackOverflow https://stackoverflow.com/questions/1000276

質問

ActiveDirectoryプロバイダーを使用して、 Membershhip.GetUser()を実行するとき エラーメッセージが表示されます:

  

パラメータ「username」は空にできません。

メンバーシップの構成は次のとおりです。

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider" >
  <providers>
    <clear/>
    <add name="AspNetActiveDirectoryMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         attributeMapUsername="sAMAccountName"/>
  </providers>
</membership>
<authentication mode="Windows"/>
<authorization>
  <deny users="?"/>
  <allow users="*"/>
</authorization> 

Visual Studioの単体テストメソッドからこのメソッドにアクセスしようとしています。 助けてくれてありがとう:)

役に立ちましたか?

解決

問題は、現在のスレッドプリンシパルが設定されていないことでした。 次の行を追加します。 Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
現在の原理を初期化し、GetUser()が機能するようになりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top