2015-11-30 73 views
0

我有一個應用程序,我對Active Directory進行身份驗證,並在本地運行時起作用。但是,當我將其推送到服務器時,它根本不起作用,當我嘗試登錄時出現500錯誤。ASP.NET Active Directory身份驗證適用於本地,但不在服務器上

這是我的登錄方法:

[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> 

回答

1

在服務器上,確保應用程序池的上下文中運行可以訪問Active Directory的帳戶。

+0

我會嘗試。 – user979331

相關問題