ADプロバイダーMembership.GetUser()は次のエラーを引き起こします:“パラメーター「ユーザー名」は空にできません。”
-
05-07-2019 - |
質問
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()が機能するようになりました。
所属していません StackOverflow