2

私の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);

            }

アプリケーション 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

しかし今、FormsAuthnticationの代わりにUserManagerを訴えている新しいasp.net mvc5.2.2 Webアプリケーションを開始しています。新しいasp.net mvc5.2.2内のデフォルトのログインアクションメソッドは次のとおりです:-

[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);
        }

FormsAuthentication で行っているように、UserManager に Ldap に対してユーザーを認証させるために必要な手順は何ですか? ありがとう

>

4

0 に答える 0