2

我有一个在使用表单身份验证的 3.0 框架上运行 ASP.NET 的应用程序。我现在正在构建也使用表单身份验证的 MVC 4 应用程序,我想在两个应用程序之间共享身份验证。我有两个配置文件匹配 auth 标签和确切的机器密钥标签。我认为我的问题是 ASP.NET 应用程序使用旧的 ASP 会员提供程序,它具有 MD5 格式的用户密码,而 MVC 应用程序使用简单的会员资格,密码格式 SHA1。

即使使用不同的凭据(密码格式),有没有办法在两个应用程序之间共享用户身份验证?

对于在表单标签中进行身份验证的主应用程序,我有这个

<credentials passwordFormat="MD5"/>

我不确定这是我的问题还是发生了什么。

4

2 回答 2

1

好想我的答案。我所要做的就是在标签中添加属性compatibilityMode="Framework20SP2"。

这是因为我的 ASP.NET 应用程序在旧框架上运行,而我的新 MVC 应用程序在框架 4.0 上

于 2013-07-31T23:36:53.990 回答
0

您的选择非常多:

  1. 编写自己的ASP.Net 2.0 MembershipProvider以使用 PBKDF2 算法存储密码(需要重置每个人的密码)。

  2. 您无法覆盖密码的 SimpleMembershipProviders 存储(据我所知),因此您必须编写自己的ExtendedMembershipProvider以在默认 MembershipProvider 中复制 ASP.Net 2.0 安全机制。

附带说明一下,MD5(在我看来)是一种糟糕的密码存储算法。目前,大多数安全专家都推荐使用bcryptPBKDF2 。

如果您对 Microsoft 为提高 .Net 的安全性所做的更改感兴趣,请阅读文章Stronger Password Hashing in .NET with Microsoft's Universal Providers

于 2013-07-24T23:48:29.087 回答