0

我不能成爲第一個有此問題的人,我必須錯過一個簡單的解決方案。我繼承了一個使用SqlMembershipProvider的表單身份驗證來保護網站的非公開ASP.NET網站。一切工作正常,開發人員手動添加到數據庫的用戶。使用私人網站的會員供應商

我需要添加一個管理頁面以允許特權用戶添加和修改用戶帳戶。成員資格提供者使得構建一個非常容易,但是現在與SqlMembershipProvider的問題是問題/答案要求。管理員需要能夠將其他用戶的密碼重置爲臨時密碼並創建新的用戶帳戶(也包含臨時密碼)。重置密碼需要用戶問題的答案或當前密碼。

我當然可以爲所有帳戶提供類似「問題」和「答案」的東西,它可以工作,但我擔心這樣做會帶來安全風險。也許我太偏執了。創建自定義成員資格提供程序除了需要大量工作之外,並不能解決此問題,因爲成員資格提供程序基礎具有相同的要求。

謝謝。

回答

2

正在重置密碼需要無論是對用戶提出的問題的答案或當前密碼

如果目前沒有使用問題/回答,你可以在web.config

覆蓋此
requiresQuestionAndAnswer="false" 

之後,你可以這樣做:

 string requesteduserGUIDstring = "some GUID"; 
     Guid UserID = new Guid(requesteduseridstring.ToUpper()); 
     MembershipUser mu = Membership.GetUser(UserID); 
     mu.ChangePassword(mu.ResetPassword(), tbNewPassword.Text); 

如果您正在使用問題/答案,您可以在供應商添加到您的web.config,只爲提供相同的過規則設置和使用該供應商僅用於重置密碼功能,

+0

的GUID部分是我的代碼片段,我消除了一些其他的東西,但我想你得到的圖片 – Pleun

+0

啊,謝謝。我知道它必須是這樣簡單的東西。 – Paul