2012-09-23 52 views
6

我想訪問webpages_membership表(我使用SimpleMembership)來檢索帳戶ConfirmationToken。MVC4:什麼實體代表表webpages_Membership

如何從我的模型/控制器/ DAL訪問此表?

我能想到的唯一的事情就是從我的代碼中執行純SQL來獲得這個值,但這看起來並不是正確的做法,也不是優雅。

回答

2

從我的理解,沒有直接的方法來檢索價值使用WebSecurity幫手。

當你創建一個用戶和帳戶的方法返回的確認令牌:

string confirmationToken = WebSecurity.CreateUserAndAccount("tester", "test123", requireConfirmationToken: true); 

然後,您可以發送該令牌(一個鏈接,例如查詢字符串參數內)到用戶的電子郵件地址。至於你提到你當然可以打到DB直接編寫自己的SQL,甚至添加webpages_Membership

WebSecurity.ConfirmAccount(userName, confirmationToken); 

:當用戶點擊鏈接時,您的應用程序必須得到/讀取該令牌,然後你必須調用EntityFramewok EDMX模型和查詢直接表:

var confirmationToken = Database.Memberships.Single(m => m.UserId == userId).ConfirmationToken; 

更多內容:

Using the confirmation feature for ASP.NET Web Pages security

Get Account Confirmation Token?

+0

謝謝Leniel。您描述的是我的意圖,但有時用戶(無論出於何種原因)想要重新發送確認電子郵件。我們如何實現一個重新發送函數而不使用自定義sql來檢索原始的confirmationToken? – 9999bao

+0

在這種情況下,您可以使用此處描述的數據庫幫助來爲用戶檢索'confirmationToken':http://www.mikesdotnetting.com/Article/156/WebMatrix-Database-Helpers-for-IN-Clauses –