如何使用自定义IPasswordHasher?

2023-11-22

我实现了 IPasswordHasher

public class MyPasswordHasher : IPasswordHasher
{
    public string HashPassword(string password)
    {
        using (SHA256 mySHA256 = SHA256Managed.Create())
        {
            byte[] hash = mySHA256.ComputeHash(Encoding.UTF8.GetBytes(password.ToString()));

            StringBuilder hashSB = new StringBuilder();
            for (int i = 0; i < hash.Length; i++)
            {
                hashSB.Append(hash[i].ToString("x2"));
            }
            return hashSB.ToString();
        }
    }


    public PasswordVerificationResult VerifyHashedPassword(
      string hashedPassword, string providedPassword)
    {
        if (hashedPassword == HashPassword(providedPassword))
            return PasswordVerificationResult.Success;
        else
            return PasswordVerificationResult.Failed;
    }
}

我在IdentityConfig中写

manager.PasswordHasher = new MyPasswordHasher();

but var user = await UserManager.FindAsync(model.Email, model.Password);在 AccountController/Login 中不要使用 MyPasswordHaser。

如何在 Identity 2.1 中使用它?


您必须将其插入 UserManager:

public class AppUserManager : UserManager<AppUser, int>
{
    public AppUserManager(AppUserStore a_store)
        : base(a_store)
    {
        _container = a_container;
        _emailService = _container.GetInstance<IEmailService>();

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

如何使用自定义IPasswordHasher? 的相关文章

  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • ASP.NET 5 中的全局异常处理

    如何将自己的日志记录逻辑附加到 ASP NET 5 应用程序以处理业务逻辑和较低层中引发的每个异常 我尝试用自己的ILoggerProvider实施和loggerfactory AddProvider new LoggerProvider
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • ASP.NET - 在表示层中显示业务层错误

    目前 在我正在开发的 ASP NET 应用程序中 基本验证 即必填字段 是在表示层中使用验证器和 ValidationSummary 完成的 这对我来说非常有用 因为 ValidationSummary 将显示多个错误消息 假设多个验证器设
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我

随机推荐

  • 从 rmagick 图像创建回形针附件

    我无法找到一种方法将使用 RMagick 创建的图像保存在回形针附件中 imageList Magick ImageList new imageList new images apple gif images overlay png pic
  • Web 请求失败,但仅适用于 localhost 且使用 System.Net.HttpWebRequest 时

    我有一个非常奇怪的问题System Net HttpWebRequest 这让我发疯 当我用localhost地址 那么它要么非常慢 大约 30 秒 要么在大多数情况下完全超时 仅当请求的目标为localhost 并且仅来自 C 代码 具体
  • 从现在()到周日午夜的秒数[重复]

    这个问题在这里已经有答案了 在 PHP 中如何获取秒数now 直到下周日午夜吗 我不想要相对于特定日期的解决方案 而只是相对于下周日 seconds strtotime next Sunday time
  • WPF TreeView 分层绑定。

    刚开始使用wpf 我需要绑定对象 分层 文件夹 public class Folder public Folder this Name string Empty this Modules new ObservableCollection
  • 值初始化和非 POD 类型

    一小时前我发布了一个答案here据我所知 这是正确的 然而我的回答被否决了Martin B 他说 你很幸运 得到了零 因为我所在的内存恰好是零初始化的 标准不保证这一点 然而读完迈克尔 伯尔的回答后here并尝试以下示例代码 1 inclu
  • jquery 选择选项单击处理程序

    given
  • Android 应用程序获取最后更新日期

    是否可以获取应用程序上次更新的日期 我想在应用程序中显示它 如下所示 String htmltext E mail Datacontainer Instance GetDatabaseHelper GetUserEmail br Autho
  • 如何使用 IOptions 模式在 dotnet-isolated (net5.0) azure 函数中进行配置

    我正在尝试将现有的 Functions 应用程序从 core 3 1 v3 移植到 net5 0 但无法弄清楚如何让 IOptions 配置模式发挥作用 我的配置中local settings json存在于配置数据中 我可以使用 GetE
  • GlassFish v3 - 设置的可移植性

    有没有什么方法可以简单地将 GlassFish v3 0 1 服务器设置 即连接池 资源 领域 复制到另一个 GlassFish 这样就不需要手动设置它们 这样设置起来就会容易很多same开发环境 环境 NetBeans 6 9 Glass
  • 自修改 html-JavaScript 文件

    我想要一个带有 JavaScript 的 html 文件 该文件 文件 能够修改其上下文 更详细地说 我是这样想象的 我有一个 html 文件 我用浏览器打开它 我在那里有一个文本区域 我可以在其中输入文本并按提交按钮 因此 表单的上下文保
  • NSTextField成为FirstResponder在awakeFromNib中不起作用

    我想在表单加载时设置焦点 但它在 awakeFromNib 中不起作用 myTextField becomeFirstResponder 只是为了引用苹果文档 Use the NSWindow makeFirstResponder meth
  • Git receive.denyCurrentBranch update反而失败

    我是 git 的新手 没有任何版本控制系统的经验 我在本地进行开发 正在寻找一种比 FTP 更简单的方法来将文件部署到 LAMP Web 服务器 我很难将 Git Windows 版本 2 5 配置为在推送更改时自动更新其当前工作目录 这是
  • 使用Java的Runtime.exec()时如何添加超时值?

    我有一个用于在本地主机上执行命令的方法 我想向该方法添加一个超时参数 以便如果被调用的命令没有在合理的时间内完成 该方法将返回错误代码 这是到目前为止的样子 没有超时功能 public static int executeCommandLi
  • clang 的 include 优先级发生了什么?

    我的命令 usr bin c fPIC I Users me project include I usr local include opencv I usr local include I opt local include std c
  • 如何从日历中获取所有事件(Swift)

    我对 Swift 有点陌生 但真的很感兴趣 我想获取我存储在名为 工作 的日历中的所有事件 并将它们显示在表视图中 我一直在寻找这样的问题 但那里显示的代码似乎有点旧并且不能真正工作 我怎么做 tableView 应该能够显示标题 开始日期
  • 比较 object.Value = Null 不会产生预期结果

    所以我有一个令人沮丧的简单问题 但我似乎无法解决 If Me Bank Credit Value Null Then Me Bank Credit Value 0 End If 基本上 我有一个未绑定的框 用户可以在其中输入数据 然后单击按
  • toDateString() 减少我的日期

    对于以下代码 var d new Date 2013 07 01 console log d toDateString 它输出 Sun Jun 30 2013 比输入的时间少一天 物体发生了什么 实际存储的日期是什么 日期被解析为 UTC
  • 为什么模型绑定在我的 POST 操作方法中不起作用?

    我对 MVC 有一个非常奇怪的问题 我的模型总是提交为空 这可能真的很简单 但我就是找不到问题所在 我的模型看起来像这样 public class LoginModel public string Username public strin
  • 如何将 HiveQL 查询的结果输出到 CSV?

    我们希望将 Hive 查询的结果放入 CSV 文件中 我认为命令应该如下所示 insert overwrite directory home output csv select books from table 当我运行它时 它说它已成功完
  • 如何使用自定义IPasswordHasher?

    我实现了 IPasswordHasher public class MyPasswordHasher IPasswordHasher public string HashPassword string password using SHA2