我在ASP.NET MVC应用程序中实现了Membership Provider。成员资格提供者使用我已覆盖并实施的方法MembershipProvider.GetPassword
。
问题是如何从代码中访问此方法?我试过这样的Membership.GetPassword
但是编译器给出了这样的方法不存在的错误。
答案 0 :(得分:2)
也许ASP.NET论坛上的这个答案有帮助
http://forums.asp.net/t/1287776.aspx/1
它指向你...... http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.getpassword.aspx
文档说出以下内容:
作为输入,接收用户名和密码,并从数据源检索该用户的密码并返回密码 作为一个字符串。
GetPassword方法确保EnablePasswordRetrieval标志 在执行任何操作之前设置为true。如果 EnablePasswordRetrieval为false,NotSupportedException异常为 抛出。
GetPassword还会检查RequiresQuestionAndAnswer的值 属性。如果RequiresQuestionAndAnswer为true,则GetPassword会检查 提供的答案参数的值与存储的密码 在数据源中回答。如果他们不匹配,a 抛出MembershipPasswordException异常。
如果您的自定义成员资格提供程序支持散列密码,则 GetPassword方法应该抛出异常 EnablePasswordRetrieval属性设置为true和密码 format设置为Hashed。无法检索哈希密码。
HTH
答案 1 :(得分:1)
GetPassword
方法未在Membership静态类中公开。因此,您只需使用Provider属性即可获取当前提供程序并调用您喜欢的任何方法:
var pwd = Membership.Provider.GetPassword("username", "answer");