猿问

设置用户对 asp.net mvc 中每个应用程序的访问权限

这是我的代码,我不知道为什么它总是执行 else 语句,即使我登录具有 SuperAdmin 角色的用户


 [HttpPost]

    [AllowAnonymous]

    [ValidateAntiForgeryToken]

    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)

    {

        if (!ModelState.IsValid)

        {

            return View(model);

        }


        // This doesn't count login failures towards account lockout

        // To enable password failures to trigger account lockout, change to shouldLockout: true

        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);


        if (User.IsInRole("SuperAdmin"))

        {

            switch (result)

            {

                case SignInStatus.Success:

                    return RedirectToLocal(returnUrl);

                case SignInStatus.LockedOut:

                    return View("Lockout");

                case SignInStatus.RequiresVerification:

                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });

                case SignInStatus.Failure:

                default:

                    ModelState.AddModelError("", "Invalid login attempt.");

                    return View(model);

            }

        }


        else

        {

            ModelState.AddModelError("", "you are not allowed to access this page");

            //AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);

            return View(model);

        }


    }

给我一些建议我应该怎么做我的代码来改进它..我的问题是为什么我的代码总是执行 else 语句,即使我使用 SuperAdmin 的帐户


慕容708150
浏览 121回答 1
1回答
随时随地看视频慕课网APP
我要回答