【问题标题】:Automatic or manual Active Directory authentication in asp.net mvcasp.net mvc 中的自动或手动 Active Directory 身份验证
【发布时间】:2014-04-29 20:44:07
【问题描述】:

我正在开发一个 asp.net mvc 网络应用程序,它应该:

  1. 如果某人是 Active Directory 中的有效用户,则自动登录。
  2. 如果客户端在网络之外(他们在家或其他任何地方),允许他们通过登录表单使用其 AD 凭据手动登录。

我对 AD 身份验证非常陌生,我不知道应该使用表单身份验证还是 Windows 身份验证。

我的 web.config 中有这个:

 <add name="ADConnect" connectionString="LDAP://[something]/CN=dhr,DC=[something],DC=net"  />

如果我设置:&lt;authentication mode="Windows"&gt; 我可以在控制器中检查 User.Identity.IsAuthenticated 以确定他们是否已登录。如果没有,我应该使用它吗?:

 Membership.ValidateUser("someguy", "somepass");

如果我运行上述命令,我会收到关于与服务器建立安全连接的错误。我有这个作为我的提供者:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
  <providers>
    <clear />
    <add name="AspNetActiveDirectoryMembershipProvider" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider"
         connectionStringName="ADConnect" attributeMapUsername="sAMAccountName"
         />

  </providers>
</membership>

【问题讨论】:

    标签: asp.net asp.net-mvc active-directory ldap


    【解决方案1】:

    出于安全原因,网络管理员通常会阻止使用 Windows 身份验证的 Web 应用程序暴露在互联网上。这绝对是可能的,但您需要确保第二种情况在您的组织中有效且可行。从 Internet 连接的一个常见方案是使用 VPN,它将您登录到网络(意味着您将通过 AD 进行身份验证)。

    要仅对第一个方案执行身份验证,您不需要 AspNetActiveDirectoryMembershipProvider。通常只需要设置一个身份验证(验证用户身份)

    • 在 web.config 中:身份验证模式="Windows" 和授权
    • 在 IIS 上:将集成 Windows 身份验证设置为 ON
    • 在 IIS 上:如果您有第二种情况(或者如果您有不同的域等),请将匿名访问保持为 ON - 它应该使用标准登录提示进行提示;否则将其设置为 OFF

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      相关资源
      最近更新 更多