2010-06-30 98 views
3

我有一個(很難與客戶合作)的客戶在我們的網站上創建了一個帳戶,但是由於他尚未點擊帳戶激活鏈接,他無法登錄。由於某種原因,他不想點擊它(他認爲它的病毒)在asp.net中手動激活用戶帳戶

無論如何,我想手動設置帳戶激活通過數據庫..我該怎麼做? 謝謝!

(我的意思是,哪些領域需要改變什麼值?)

+2

(他認爲它的病毒) - 大聲笑! – Krunal 2010-06-30 09:21:03

回答

1

你能不能臨時指定自己的地址到帳戶,然後重新發送激活網址是什麼?也許他可以轉發你的郵件,你可以點擊鏈接。認爲這比「侵入」會員提供商的方式容易。

還要求你的客戶啞巴不是處理你的客戶一個很好的辦法;)

+0

看起來不錯,但是,我們的網站不提供重新發送激活鏈接的方法! – iamserious 2010-06-30 09:23:26

+0

讓他轉發你的郵件:)否則,嘗試找出激活URL是如何創建的。也許URL(或其部分)存儲在數據庫中,您可以「重新創建」他的URL。 – Gertjan 2010-06-30 09:26:04

+0

我們正在使用aspnet成員資格功能..所以激活鏈接將從GUID創建,因此重新創建它的機率幾乎非常非常罕見。 – iamserious 2010-06-30 09:30:17

4

我做了周圍的ASPNET成員表中的一些fiddeling,發現如何手動激活賬號!

update aspnetdb.dbo.aspnet_Membership set IsApproved = 1 where UserId = (select UserId From aspnetdb.dbo.aspnet_Users where UserName = @Username) 

userid是可笑的長,所以我發現它更容易從用戶名錶中提取它的用戶名。

4

在您的MembershipProvider上調用這兩個方法。

 Membership.GetUser().UnlockUser(); 
     Membership.GetUser().IsApproved = true; 
+0

我想在數據庫級別執行此操作,可以在單擊鏈接並且用戶登錄頁面後調用這些方法..但是我的這個用戶拒絕單擊鏈接,因此我必須操作數據庫中的列,但是謝謝:) – iamserious 2010-06-30 09:50:58

+1

你也可以通過傳遞用戶名來調用它。無需直接觸摸數據庫。 'Membership.GetUser(「username」)。UnlockUser();' – 2010-06-30 10:01:31

+0

hmm但爲此我仍然需要在一些臨時頁面中編寫代碼並編譯整個項目,並將dll和必要的頁面轉移到專用服務器並運行它,然後恢復它的權利?很多工作只是一次的事情!但可能是如果我有更多像這樣的客戶,我將在未來將其作爲「僅管理員」的東西進行整合。感謝您的創意! – iamserious 2010-06-30 10:50:56

2

最近我有同樣的問題,我發現,當你正在做Membership.CreateUser叫你可以把它的用戶作爲真正的自動創建通過插入這樣的:

Membership.CreateUser(userName, Password, eMail, passwordQuestion, passwordAnswer, isApproved) 

isApproved是一個布爾值,當您調用創建用戶時可以設置爲true。