【问题标题】:AD Provider Membership.GetUser() cause error saying: "The parameter 'username' must not be empty."AD Provider Membership.GetUser() 导致错误提示:“参数'用户名'不能为空。”
【发布时间】:2010-11-03 06:30:15
【问题描述】:

使用 ActiveDirectory 提供程序,当我执行 Membershhip.GetUser() 我收到一条错误消息:

参数“用户名”不能为空。

这是会员配置:

<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 单元测试方法中访问此方法。 感谢您的帮助:)

【问题讨论】:

  • 你为什么在单元测试中使用会员提供者?

标签: c# visual-studio unit-testing active-directory asp.net-membership


【解决方案1】:

问题是当前线程主体尚未设置。 添加以下行: Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
正在初始化当前的principlal,GetUser() 重新开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多