首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何密码都可以使用SmartAdmin MVC。

任何密码都可以使用SmartAdmin MVC。
EN

Stack Overflow用户
提问于 2018-03-28 21:37:21
回答 1查看 161关注 0票数 1

我可以使用任何密码进行身份验证。电子邮件必须是有效的注册电子邮件,但pwd并不重要。其他一切都正常工作。

对从哪里开始解决这个问题有什么建议吗?我在网络搜索中没有发现任何类似的问题。

我的观点..。

我在账户管理员的行动..。

代码语言:javascript
复制
 [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(AccountLoginModel viewModel)
    {
        if (!ModelState.IsValid)
            return View(viewModel);

        var user = _manager.FindByEmail(viewModel.Email);

        if (user != null)
        {
            await SignInAsync(user, viewModel.RememberMe);

            string uid = user.Id;
            return RedirectToLocal(viewModel.ReturnUrl);
        }

        ModelState.AddModelError("", "Invalid username or password.");

        return View(viewModel);
    }

信号异步方法..。

代码语言:javascript
复制
private async Task SignInAsync(IdentityUser user, bool isPersistent)
    {
        // Clear any lingering authencation data
        FormsAuthentication.SignOut();

        // Create a claims based identity for the current user
        var identity = await _manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);

        // Write the authentication cookie
        FormsAuthentication.SetAuthCookie(identity.Name, isPersistent);
    }

我确实创建了一个单独的MVC web项目来查看脚手架登录操作,这有点不同。SmartAdmin模板是自定义的,很难在不知道我正在影响的情况下开始更改。任何方向都是感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-29 16:08:14

如果系统中的usernameemail,则应使用

代码语言:javascript
复制
var user = _manager.FindAsync(viewModel.Email, viewModel.Password);

然后登录用户,如果它不是null的话。

如果username不是email,您应该首先获得user,然后检查密码

代码语言:javascript
复制
var user = _manager.FindByEmail(viewModel.Email);
bool isPasswordCorrect = await _manager.CheckPasswordAsync(user, viewModel.Password);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49544588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档