2017-02-23 95 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时执行此操作。