ASP.NET Active Directory身份验证可在本地运行,但不能在服务器上运行

本文关键字:运行 NET 但不能 服务器 Directory 身份验证 ASP Active | 更新日期: 2023-09-27 18:25:10

我有一个应用程序,我根据和Active Directory进行身份验证,当我在本地运行它时,这是有效的。然而,当我把它推到服务器上时,它根本不起作用,当我尝试登录时,我会收到500个错误。

这是我的登录方法:

[HttpPost]
        public ActionResult Login(LoginClass model, string ReturnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Membership.ValidateUser(model.UserName, model.Password))
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                    if (Url.IsLocalUrl(ReturnUrl) && ReturnUrl.Length > 1 && ReturnUrl.StartsWith("/")
                        && !ReturnUrl.StartsWith("//") && !ReturnUrl.StartsWith("/''"))
                    {
                       return Redirect(ReturnUrl);
                    }
                    else
                    {
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect");
                }
            }
            return RedirectToAction("Index", "Home");
        }

这是我的web.config文件中的一些内容:

 <add name="ADConnectionString" connectionString="LDAP://testdomain.test.com/CN=Users,DC=testdomain,DC=test,DC=com" />
<system.web>
    <authentication mode="Forms">
      <forms name=".ADAuthCookie" loginUrl="~/Login/Index" timeout="45" slidingExpiration="false" protection="All" />
    </authentication>
    <roleManager enabled="true" />
    <membership defaultProvider="ADMembershipProvider">
      <providers>
        <clear />
        <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" />
      </providers>
    </membership>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

ASP.NET Active Directory身份验证可在本地运行,但不能在服务器上运行

在服务器上,确保应用程序池在可以访问Active Directory的帐户的上下文中运行。