ASP.. NET活动目录自动登录

本文关键字:登录 NET 活动 ASP | 更新日期: 2023-09-27 18:12:28

我正在制作一个简单的网站来了解asp.net/AD身份验证。

我使用了本教程中的一些代码片段:https://support.microsoft.com/en-us/kb/316748从登录页面成功地使用AD与表单身份验证。我在网站上使用这些IIS身份验证设置:

Anonymous Authentication    -Enabled
ASP.NET Impersonation       -Disabled
Basic Authentication        -Disabled
Digest Authentication       -Disabled
Forms Authentication        -Enabled
Windows Authentication      -Disabled

我想使用当前登录的windows用户的凭据,如果失败,要么不提示,要么只提示。当我改变网络。配置身份验证模式为"Windows"和IIS设置,如下所示,它有一个弹出的凭据提示,但只是不断提示,从不接受凭据。

Anonymous Authentication    -Enabled
ASP.NET Impersonation       -Disabled
Basic Authentication        -Disabled
Digest Authentication       -Disabled
Forms Authentication        -Disabled
Windows Authentication      -Enabled

我试过其他几种组合,但都失败了。

本网站所有文件为:

LdapAuthentication.cs - is in App_Code and is a direct copy/paste from the tutorial
Logon.aspx - is copy/pasted from the tutorial with the companies LDAP path added
Default.aspx - is a direct copy/paste from the WebForm1.aspx in the tutorial
Web.config (shown below)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5" />
    <authentication mode="Forms"> <!-- I also tried "Windows" -->
      <forms loginUrl="logon.aspx" name="adAuthCookie" timeout="10" path="/" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    <identity impersonate="true" />
    <anonymousIdentification enabled="false" />
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

ASP.. NET活动目录自动登录

确保IIS正确配置为在表单中使用ActiveDirectory身份验证,它适用于Visual studio的本地服务器,但不适用于IIS。在IIS 7+中,它是应用程序池帐户。-只需在该帐户下创建一个新的应用程序池,并将该应用程序池分配给您的应用程序/站点。-右键单击新池(以ASP. net为例)。. NET V4.0 Mypool) ->高级设置—在"进程模型"中,选择"本地系统"作为身份。. config:

<system.web>
<compilation targetFramework="4.0" debug="true"/>
..........
<authentication mode="Forms">
      <forms loginUrl="login.aspx" name="adAuthCookie" timeout="10" path="/"/>
    </authentication>    
    <identity impersonate="false"/>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
</system.web>