2017-02-23 42 views
0

隨着Kentico 10,用戶如何使用c#以編程方式使他們的密碼過期? UserInfo.UserPasswordExpiration沒有setter(所以只能讀取)。我正在導入一羣用戶(正在工作),我想強制用戶在首次登錄時重置密碼。Kentico 10通過C#密碼過期

回答

2

要正確地檢查和設置這一點,你如果密碼過期啓用需要

檢查:

int num;  
bool isEnabled = AuthenticationHelper.IsPasswordExpirationEnabled("Sitename", out num); 

然後檢查當用戶上次更改其密碼:

TimeSpan dateTime = UserInfoProvider.DateTimeNow = MembshipContext.AuthenticatedUser.UserPasswordLastChanged; 
int daysSinceLastChange = num - dateTime.Days; 

所以,如果daysSinceLastChange是一個正值,密碼過期了該天數。如果daysSinceLastChange是負值,則密碼將在那些日期內過期。

要正確設置這一點,你需要做的幾件事情:

  • 確保選中啓用密碼過期被啓用。設置>安全&成員資格>密碼>密碼過期。
  • 請確保您有在天設置有效的密碼有效期限>安全&會員>密碼>密碼過期
  • 設置UserPasswordLastChanged值上要無效用戶可笑的東西像10年前。您可以在導入用戶或通過API時執行此操作。