【问题标题】:how to access the MembershipProvider.GetPassword method如何访问 MembershipProvider.GetPassword 方法
【发布时间】:2012-04-13 22:31:57
【问题描述】:

我已经在我的 ASP.NET MVC 应用程序中实现了 Membership Provider。成员资格提供程序具有我已覆盖并实现的方法 MembershipProvider.GetPassword

问题是如何从代码中访问此方法?我试过这样Membership.GetPassword,但是编译器给出了这样的方法不存在的错误。

【问题讨论】:

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


    【解决方案1】:

    也许 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 为真,GetPassword 会检查 提供的答案参数的值与存储的密码 在数据源中回答。如果它们不匹配,则 抛出 MembershipPasswordException 异常。

    如果您的自定义会员服务提供商支持散列密码,则 GetPassword 方法应该抛出异常,如果 EnablePasswordRetrieval 属性设置为 true 和密码 格式设置为散列。无法检索散列密码。

    HTH

    【讨论】:

      【解决方案2】:

      GetPassword 方法未在 Membership 静态类中公开。因此,您可以简单地使用 Provider 属性来获取当前提供程序并在其上调用您喜欢的任何方法:

      var pwd = Membership.Provider.GetPassword("username", "answer");
      

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2022-01-06
        • 2017-04-08
        • 1970-01-01
        • 2019-03-15
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        相关资源
        最近更新 更多