【问题标题】:Implement ASP.Net Core identity PasswordHash on Full framework Project在完整框架项目上实现 ASP.Net Core 身份 PasswordHash
【发布时间】:2018-09-22 06:12:03
【问题描述】:

我在互联网上看到一些帖子谈论 ASP.Net 核心的 hashig 系统和完整框架项目之间的区别。现在,我正在尝试将身份记帐与使用 ASP.Net 核心身份创建的帐户一起使用,但我无法使用完整框架应用程序登录,因为密码散列不同。我从this article 知道您可以在Core 上使用这两种散列,但我没有找到任何关于我需要的Framework 的信息。我的问题是:如何在我的完整框架应用程序中实现与 ASP.Net Core 相同的密码哈希?有出路吗?即使是两个应用程序的通用 PasswordHashing 系统也可以工作。提前致谢。

【问题讨论】:

  • 我觉得你想覆盖FullFramework的哈希算法,是真的吗?
  • @isaeid 是的,我正在尝试覆盖 FullFramework 上的哈希算法以从核心应用程序中获取相同的哈希密码

标签: c# asp.net hash asp.net-core


【解决方案1】:

【讨论】:

    【解决方案2】:

    看来你需要根据AspNet Core implementation实现Microsoft.AspNet.Identity.IPasswordHasher

    public class AspNetCorePasswordHasher : IPasswordHasher
    {  
       ... 
    }
    

    然后你需要说ApplicationUserManager 来使用你的PasswordHasher:

    public class ApplicationUserManager : UserManager<ApplicationUser>
    {
        public ApplicationUserManager(IUserStore<ApplicationUser> store)
            : base(store)
        {
            PasswordHasher = new AspNetCorePasswordHasher();
        }
        ...
    }
    

    我不确定您是否可以只复制一个实现,但由于 AspNet 核心是开源的,我认为您将能够重复该实现。

    【讨论】:

    • 既然PasswordHasher 是一个IPasswordHasher&lt;TUser&gt; 类型,我们就不能简单地将它从服务集合中移除并在Startup.ConfigureServices() 方法中注册一个新的实现吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多