membership-provider - 什么原因可能导致 WebSecurity.ChangePassword() 失败?

标签 membership-provider webmatrix razor

我正在处理一个 Razor 项目,需要将现有的用户数据库集成到 SimpleMembership 提供程序数据库架构中。这是通过指定我现有的用户表以及 SimpleMembership API 将哪些列用于用户名和用户 ID 来完成的。

WebSecurity.InitializeDatabaseConnection("DB_ConnStr", "User", "UserId", "Username", true);

虽然在这个过程中,我正在用现有数据库中每个用户行的新记录填充 webpages_Membership 表。这很顺利,我已经编写了一些代码来处理每个现有用户的插入。

在插入过程中,为简单起见,我使用了一个虚拟的加密密码 token ,并将密码设置为对每个人都相同。然后我需要在记录上运行另一个脚本来为 webpages_Membership 表中的每个用户设置正确的密码。这涉及从现有用户表中解密当前密码,然后调用:

WebSecurity.ChangePassword( username, dummyPwd, newPwd) 

在每个用户上,将解密的当前密码作为“newPwd”参数传递。

对于超过 100,000 条记录,这在 99% 的调用案例中都运行良好。但它在大约 40 个案例中失败了。

什么原因可能导致此方法失败?

最佳答案

我的第一个猜测是新密码的哈希值可能超过了 128 个字符的限制。

当 ChangePassword 调用失败时,是否可以捕获异常以获取失败原因的详细信息?

关于membership-provider - 什么原因可能导致 WebSecurity.ChangePassword() 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050142/

相关文章:

asp.net-mvc - 采用来自 ASP.NET MVC 的 "aspnet_ ..."sql 表

c# - 如何在 C# 中进行异步调用以同步运行

c# - 使用 MVC,如何根据 <td> 之一中包含的日期将 <tr> 格式化为特定类?

asp.net-mvc - MVC 按钮单击在新窗口中打开

javascript - 如果文本框为空,Jquery 禁用影响模型中的所有项目

c# - 将 int 的对象转换为 int 给出空引用

c# - 成员(member)信息取自 machine.config

vb.net - 在本地 IIS 安装上部署 .vbhtml

webmatrix - 如何从 WebMatrix 2 Beta 中的 vsdoc 文件引用获取 JavaScript Intellisense?

windows - 在 Windows 7 家庭普通版上安装 IIS