2012-03-30 37 views
1

我在ASP.NET MVC應用程序中實現了Membership Provider。會員提供商有我已覆蓋和實施的方法MembershipProvider.GetPassword如何訪問MembershipProvider.GetPassword方法

問題是如何從代碼訪問此方法?我嘗試過這樣的Membership.GetPassword,但是編譯器給出了這樣的方法不存在的錯誤。

回答

1

GetPassword方法未在Membership靜態類中公開。所以,你可以簡單地使用Provider屬性來獲取當前的供應商和打電話給你就可以了喜歡的任何方法:

var pwd = Membership.Provider.GetPassword("username", "answer"); 
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會檢查提供的答案參數的 值與數據源中存儲的密碼 答案。如果它們不匹配,則拋出一個 MembershipPasswordException異常。

如果您自定義的成員提供支持散列密碼,如果 EnablePasswordRetrieval屬性設置爲true,密碼 格式設置爲散列的 getPassword方法來應該拋出一個異常。散列的密碼不能被檢索。

HTH