2013-07-20 25 views
0

我在我的網站上註冊後開發了電子郵件激活系統。當用戶註冊時,我將IsApproved設置爲false。只要我使用本地登錄,這工作就很好。如果鏈接的MembershipUser未被批准,請阻止OpenAuth登錄

問題出在這裏:如果用戶向OpenAuth註冊,我創建成員用戶並將IsApproved設置爲false - 但仍可以使用OpenAuth登錄。我猜IsApproved只是用於驗證用戶名/密碼。

這是OpenAuth的自動生成的登錄序列的一部分:

if (OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie: false)) 
{ 
    RedirectToReturnUrl(); 
} 

基本上,我需要的是得到一個與OpenAuth憑據關聯的會員用戶名,所以我可以檢查用戶是否被批准和採取行動,但我一直無法弄清楚如何。

我試圖尋找OpenAuthAccountData類的OpenAuth憑據的實例,但我無法找到任何東西。

+0

乾杯..風滾草徽章! – Inrego

回答

0

只是不要打電話給OpenAuth.CreateUser。在用戶驗證後,您可以使用「authResult.UserName」獲取用戶名。在調用CreateUser之前,數據庫中不會創建任何內容。