0

我正在使用asp.net成員資格,我開發了一個管理頁面,可以重新生成臨時密碼以發送給用戶,然後當用戶登錄時第一次,密碼必須改變,但我不知道誰知道密碼是否被重置。asp.net mvc 3通過管理員重置密碼並強制用戶更改它

我想是這樣一個基本的控制器:

if (user.LastPasswordChangedDate >= user.LastLoginDate) 
{ 
    filterContext.Result = RedirectToAction("ChangePassword", "Account"); 
} 

但是,我已經更新了LastLoginDate因爲ChangePassword行動需要與一個autenticated用戶。

正在重置密碼鎖定/解鎖用戶的時候我就在想得到更新了「LastLockoutDate」,做:

if (user.LastPasswordChangedDate >= user.LastLockoutDate) 
{ 
    filterContext.Result = RedirectToAction("ChangePassword", "Account"); 
} 

但是,我無法找到一個方法來進行手動鎖定

謝謝!

回答

1

有很多事情你可以做,有些將取決於你的系統如何工作。例如,如果您不使用註釋,您可以在註釋字段中存儲特定的數據。或者,如果您不使用「Approved」位(即創建新用戶時,您不需要他們驗證電子郵件或其他內容,而是通過將IsApproved設置爲true來創建它們),那麼您可以將IsApproved設置爲False,並在密碼更改爲false時強制更改密碼。

沒有辦法訪問Membership API中的大部分數據,只需從數據庫訪問它。

您也可以將其存儲在Personalization提供程序中。

另一種方法是簡單地避免將其存儲在成員數據庫中,而只是在應用數據中添加一個表或字段來處理此問題。