Kentico 10通过C#密码过期
问题描述:
随着Kentico 10,用户如何使用c#以编程方式使他们的密码过期? UserInfo.UserPasswordExpiration没有setter(所以只能读取)。我正在导入一群用户(正在工作),我想强制用户在首次登录时重置密码。Kentico 10通过C#密码过期
答
要正确地检查和设置这一点,你如果密码过期启用需要
检查:
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时执行此操作。