在.Net Core上存储密码,如ASP.Net WebSecurity

时间:2018-01-15 19:10:43

标签: asp.net .net asp.net-mvc

我们在asp.net上开发了一个应用程序。它使用具有websecurity功能的成员资格提供程序来注册帐户和日志用户。

我们有另一个需要共享同一个数据库的应用程序。这个是在asp.Net Core上开发的。它不需要登录,但需要在会员提供商格式上注册帐户。

由于两个系统都不兼容,我们希望在表webpages_Membership上手动编写密码。

是否可以使用ASP.Net应用程序中使用的相同salt + hash在.Net Core应用程序上存储密码?

如果没有,有什么方法可以解决它吗?

我看到的唯一解决方案是在我们的表中创建自己的登录系统,并使我们的ASP.Net应用程序适应此目的;但在这种情况下,我需要做很多工作,而我更愿意找到另一种解决方案。

由于

1 个答案:

答案 0 :(得分:1)

也许您可以从两个应用程序中使用System.Security.SecureString,以确保数据库值兼容?

您可以使用这样的代码将用户输入的字符串转换为SecureString

    public static SecureString ToSecureString( this string source )
    {
        if ( source == null )
        {
            return null;
        }

        var securePassword = new SecureString();

        foreach ( char c in source )
        {
            securePassword.AppendChar( c );
        }

        securePassword.MakeReadOnly();

        return securePassword;
    }