【问题标题】:How can one use Active Directory authentication without requiring the user to enter a domain name?如何在不要求用户输入域名的情况下使用 Active Directory 身份验证?
【发布时间】:2013-04-02 19:00:17
【问题描述】:

现在,我在 Web 应用程序上进行了 Active Directory 身份验证。用户使用其 AD 凭据登录。他们必须输入他们的广告凭据,例如:

myname@ourdomain.com

我希望他们能够输入他们的广告凭据,例如:

我的名字

这可能吗?如果有,怎么做?

【问题讨论】:

  • 你必须出示一些你的验证码。
  • 您使用的是 Windows 还是 Forms 身份验证?如果您使用的是 Windows,那么您无能为力。如果您将表单与 AD 提供商一起使用,那么您只需检查用户是否输入了域,如果没有在验证密码之前添加它。

标签: asp.net vb.net active-directory login-control


【解决方案1】:

这是我在解决问题时所做的

将您的登录控件更改为模板

然后添加这段代码

 Protected Sub LoginButton_Click(sender As Object, e As System.EventArgs)
    If Not UCase(LoginUser.UserName).EndsWith("@MYDOMAIN.LOCAL") Then
        LoginUser.UserName &= "@MYDOMAIN.local"
    End If
End Sub

在你的 web.config 添加:

       attributeMapUsername="SAMAccountName" to your provider

看起来像

 <membership defaultProvider="MyADMembershipProvider">
  <providers>
    <add
       name="MyADMembershipProvider"
       type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       connectionStringName="ADConnectionString"
       connectionUsername="MYDOMAIN\administrator"
       connectionPassword="MYPASSWORD"
       enableSearchMethods="true"
       attributeMapUsername="SAMAccountName"/>
  </providers>
</membership>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多