0

私はMembershhip.GetUser() を実行すると、私はエラーメッセージを取得:ADプロバイダMembership.GetUser()は、次のようなエラーを表示します。 "パラメータ 'username'は空であってはなりません。 ActiveDirectoryのプロバイダを使用

パラメーター「ユーザ名」が空であってはなりません。ここで

メンバーシップの設定です:

<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のユニットテストメソッドからこのメソッドにアクセスしようとしています。 助けてくれてありがとう。

+0

ユニットテストでメンバーシッププロバイダを使用しているのはなぜですか? – RichardOD

+0

既に解決済みです、ありがとうございます! – Tamir

答えて

1

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