Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 允许UserManager.FindAsync()根据Active Directory LDAP服务器对用户进行身份验证_Asp.net_Forms Authentication_Asp.net Identity_Asp.net Authorization - Fatal编程技术网

Asp.net 允许UserManager.FindAsync()根据Active Directory LDAP服务器对用户进行身份验证

Asp.net 允许UserManager.FindAsync()根据Active Directory LDAP服务器对用户进行身份验证,asp.net,forms-authentication,asp.net-identity,asp.net-authorization,Asp.net,Forms Authentication,Asp.net Identity,Asp.net Authorization,在我的asp.net mvc4 web应用程序中,我执行了以下身份验证机制。要在登录屏幕上输入用户的AD用户名和密码,我将根据LDAP服务器验证用户凭据。我的登录操作方法是:- [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model, string returnUrl) {

在我的asp.net mvc4 web应用程序中,我执行了以下身份验证机制。要在登录屏幕上输入用户的AD用户名和密码,我将根据LDAP服务器验证用户凭据。我的登录操作方法是:-

[HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Login(LoginModel model, string returnUrl)
        {


            MembershipProvider domainProvider;

            domainProvider = Membership.Providers["ADMembershipProvider"];
            if (ModelState.IsValid)
            {

                // Validate the user with the membership system.
                if (domainProvider.ValidateUser(model.UserName, model.Password))
                {


                    FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

                }
                else
                {
                    //  Response.Write("Invalid UserID and Password");
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    List<String> domains2 = new List<String>();
                   //code goes here
                }

                return RedirectToLocal(returnUrl);

            }
[HttpPost]
[异名]
[ValidateAntiForgeryToken]
公共操作结果登录(LoginModel模型,字符串返回URL)
{
会员资格提供者域名提供者;
domainProvider=Membership.Providers[“ADMembershipProvider”];
if(ModelState.IsValid)
{
//使用成员资格系统验证用户。
if(domainProvider.ValidateUser(model.UserName,model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName,model.RememberMe);
}
其他的
{
//Write(“无效的用户ID和密码”);
AddModelError(“,”提供的用户名或密码不正确。“);
列表域2=新列表();
//代码在这里
}
返回重定向到本地(returnUrl);
}
在应用程序web.config中,我定义了以下提供程序,它们表示我们的Ldap连接字符串:-

<membership>
      <providers>
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, &#xA;            Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString"  connectionUsername="administrator" connectionPassword="*********" attributeMapUsername="sAMAccountName"/>

      </providers>
    </membership>

  <connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://WIN-SPDev.tdmgroup.local/CN=Users,DC=tdmgroup,DC=local"/>

   </connectionStrings

[HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {

            if (ModelState.IsValid)
            {
                var user = await UserManager.FindAsync(model.UserName, model.Password);
                if (user != null)
                {
                    await SignInAsync(user, model.RememberMe);
                    return RedirectToLocal(returnUrl);
                }
                else
                {
                    ModelState.AddModelError("", "Invalid username or password.");
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }