加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC中的UserManager.FindByNameAsync速

发布时间:2020-12-16 09:55:44 所属栏目:asp.Net 来源:网络整理
导读:我有一个基于ASP.NET MVC框架的站点.虽然我使用异步方法登录用户,但我发现用户登录网站需要花费很长时间.我使用过Visual Studio的诊断工具,发现这行代码在代码执行期间占用了大部分时间. var user = await UserManager.FindByNameAsync(model.Email); 完整代
我有一个基于ASP.NET MVC框架的站点.虽然我使用异步方法登录用户,但我发现用户登录网站需要花费很长时间.我使用过Visual Studio的诊断工具,发现这行代码在代码执行期间占用了大部分时间.

var user = await UserManager.FindByNameAsync(model.Email);

完整代码:

public async Task<ActionResult> Login(LoginViewModel model,string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var user = await UserManager.FindByNameAsync(model.Email);
        if (user != null)
        {
            var getPasswordResult = UserManager.CheckPassword(user,model.Password);

            if (getPasswordResult)
            {
                AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);

                var identity = await UserManager.CreateIdentityAsync(
                          user,DefaultAuthenticationTypes.ApplicationCookie);

                AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = model.RememberMe },identity);

                if (model.RememberMe == true)
                {
                    HttpCookie cookie = new HttpCookie("UsersLogin");
                    cookie.Values.Add("UserName",model.Email);
                    cookie.Expires = DateTime.Now.AddDays(15);
                    Response.Cookies.Add(cookie);
                }



                return RedirectToAction("NavigateAuthUser","Home",new { ReturnUrl = returnUrl });
            }
            else
            {
                ModelState.AddModelError("","Invalid login attempt.");
                return View(model);
            }
        }

        return new EmptyResult();
    }

有什么改善表现的建议吗?
谢谢
Sanjeev

解决方法

对于解决方法,我使用:

_db.Users.First(x => x.UserName == User.Identity.Name);

但我相信这不是最好的方法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读