为什么我无法以种子用户身份登录?

2024-03-07

我正在开发一个新的 ASP.NET MVC 项目,使用存储在数据库中的个人帐户进行身份验证。这是我的类,每次测试时都会使用示例数据为数据库播种:

public class DevelopmentInitializer : DropCreateDatabaseAlways<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        base.Seed(context);

        var applicationUserManager = new ApplicationUserManager(new UserStore<ApplicationUser>(context));

        var sampleUserOne = new ApplicationUser { UserName = "SampleUser", Email = "[email protected] /cdn-cgi/l/email-protection" };
        var result = applicationUserManager.Create(sampleUserOne, "aaaaaa");

        if (!result.Succeeded) 
            throw new Exception();

        context.SaveChanges();
    }
}

The Login操作与模板中一样:

    //
    // POST: /Account/Login
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            var user = await UserManager.FindAsync(model.Email, 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);
    }

问题描述很简单:尝试使用种子用户的凭据登录失败。

具体来说,FindAsync方法返回null,即使用户存在于数据库中 -FindByEmailAsync确实找到了种子用户。

但是,创建一个新帐户可以工作并允许我登录。

为什么我无法以种子用户身份登录,即使我可以注册新帐户并使用该帐户登录?

我怀疑这与密码的散列方式有关,但我不知道如何确认这一点。

难道是我账号下错了?我不应该创建一个单独的ApplicationUserManager in the Seed方法?如果没有,我应该如何获得一个以便打电话Create?在我的帐户被锁定或用户在部署的应用程序中被锁定之前,我试图了解新系统是如何工作的。


下面的代码:

var user = await UserManager.FindAsync(model.Email, model.Password);

期望传入用户名,而不是电子邮件地址。

这个简单的改变应该解决以下问题:

var user = await UserManager.FindAsync(model.UserName, model.Password);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我无法以种子用户身份登录? 的相关文章

随机推荐

  • 对 SBCL 中的“ql:quickload”和可执行脚本感到困惑

    我一直在尝试在我的可执行脚本中使用 Quicklisp 包 一个 简单的 工作示例是 usr bin sbcl script eval when compile toplevel load toplevel execute ql quick
  • 如何检查php脚本是否在本地服务器上运行?

    是否可以检查网站 php 是在本地运行还是在托管服务器上运行 如果网站在本地运行 我想启用一些日志 并且我不希望这些日志出现在在线网站上 我可以设置一个变量 local 1 但我必须在上传之前更改它 有没有办法自动执行此任务 本地服务器 W
  • 对于属性上的 NOTIFY 信号,如果我给它一个参数,会有什么区别?

    假设我有一个如下所示的类 class Something QObject Q PROPERTY int something READ getSomething NOTIFY somethingChanged signals void som
  • 更改 AngularJS ngTrim 行为

    我正在使用 AngularJS 版本 1 5 6 我有一个带有大量文本区域和文本输入的大型应用程序 我今天发现了一个错误 该错误是由 AngularJS 修剪文本类型输入的默认行为引起的 我想将此行为从默认修剪更改为默认不修剪 有没有一种简
  • 如何仅使用按位运算符实现 Bitcount?

    任务是仅使用按位运算符实现位计数逻辑 我让它工作得很好 但我想知道是否有人可以建议一种更优雅的方法 仅允许按位运算 没有 如果 因为 等 int x 4 printf d n x 0x1 printf d n x gt gt 1 0x1 p
  • 查找我的应用程序中的所有 mongoid 模型名称

    有没有办法找到我的 Rails 应用程序中的所有 Mongoid 模型名称 我可以通过获取 app models 文件夹中的所有文件来找到所有模型 但我特别想要 mongoid 模型名称 您可以在 Mongoid 3 1 及更高版本中执行此
  • AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑

    好的 我有一个页面 上面有 5 个影片剪辑 按钮 当您将鼠标悬停在每一个上时 它们会亮起 OVER 状态 当您单击它们时 它们会展开 DOWN 状态 问题是 如果您展开了多个影片剪辑 处于 向下 状态 它们会重叠并且看起来很糟糕 我想对它们
  • 如何在 Flask 中获得用户对 cookie 的许可

    我有一个用 Flask 和 Flask Login 构建的网站 所以我知道它在某个时候会生成 cookie 但我的问题比这更基本 Flask 应用程序是否总是立即生成 cookie 如果没有 是否有任何工具可以让我识别应用程序的哪一部分在何
  • 为什么我的堆栈指针仅以 16 的倍数递增?

    使用以下 C 代码 void func int a 1 b 2 c 3 编译使用gcc S O o myfile c我得到输出 file myfile c intel syntax noprefix text globl func type
  • 在Python中将外部函数分配给类变量

    我试图将其他地方定义的函数分配给类变量 以便稍后可以在实例的方法之一中调用它 如下所示 from module import my func class Bar object func my func def run self self f
  • CLR是虚拟机吗?

    我读过一本提到 net 的书CLR 作为虚拟机 任何人都可以证明这一点吗 为什么我们在某些开发平台上需要虚拟机的概念 是否有可能开发一个完全面向对象且像 net一样强大的本机框架 没有虚拟机的框架 将 CLR 称为虚拟机的书是 专业 Net
  • 如何在 Bash 中将文件名中的填充数字清零?

    使用 Bash 重命名以下形式的文件的最佳方法是什么 foo1 foo2 foo1300 fooN 使用零填充的文件名 foo00001 foo00002 foo01300 fooN 这不是纯粹的 bash 但是使用 Perl 版本更容易r
  • 如何在 Java 中验证公钥和私钥对

    有没有一种方法可以在 java 中验证给定的私钥 例如某个 key 文件 是否与某个使用 RSA 算法的某个 pub 文件匹配的公钥 您可以通过以下方式验证密钥对是否匹配 创建一个挑战 足够长度的随机字节序列 signing的挑战私钥 验证
  • Blackberry:读取项目中打包的文本文件(更快)

    我尝试过这种方法 但对于稍大的文本文件来说 它确实很慢 有谁知道阅读项目中包含的纯文本文件的更好方法 有没有办法使用 FileConnection 使用信息组合找出答案 IOUtilities streamToBytes is 直接在输入流
  • 当涉及部分操作时,不会调用 PerformBatchUpdates 完成处理程序

    到目前为止 这里的代码片段几乎适用于NSFetchedResultsController UICollectionView 根据所提供的信息 https developer apple com videos play wwdc2018 22
  • JWT 身份验证,无需在每个请求上获取用户详细信息

    我正在 Spring Security 中实现 JWT 身份验证 我有预定义的角色 例如 普通用户 管理员等 我有以下令牌有效负载 sub nick iat
  • 优化 R 中的正则表达式以进行子字符串提取

    我对之前的答案有一个后续问题 可以在这里找到 R 中拆分不均匀字符串 可变子字符串和分隔符 https stackoverflow com q 69921210 3832970 总之 我想提取遵循以下模式的字符串中的粗体文本 sp Q2UV
  • beanstalkd 的统计数据/监视器/检查器

    有谁知道有一个可以监控 beanstalkd 队列的应用程序吗 我正在寻找一些可以显示管道和工作统计信息并允许您检查详细信息的东西 我对语言 平台并不是很挑剔 只是想在编写自己的语言 平台之前知道是否有可用的东西 所有这些以及至少另外两个都
  • Selenium chrome 驱动程序袜子代理配置

    我在为 Chrome 驱动程序设置袜子代理时遇到问题 Proxy proxy new Proxy proxy setProxyType Proxy ProxyType MANUAL proxy setAutodetect false pro
  • 为什么我无法以种子用户身份登录?

    我正在开发一个新的 ASP NET MVC 项目 使用存储在数据库中的个人帐户进行身份验证 这是我的类 每次测试时都会使用示例数据为数据库播种 public class DevelopmentInitializer DropCreateDa