38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace 呼吸过滤器气雾直径测试仪
|
|
{
|
|
internal class PasswordExpirationService
|
|
{
|
|
private readonly TimeSpan _maxExpirationPeriod;
|
|
private readonly TimeSpan _reminderPeriod;
|
|
|
|
public PasswordExpirationService()
|
|
{
|
|
// 读取配置文件中的密码时效策略
|
|
var config = ConfigurationManager.AppSettings;
|
|
_maxExpirationPeriod = TimeSpan.FromDays(int.Parse(config["MaxExpirationPeriodInDays"]));
|
|
_reminderPeriod = TimeSpan.FromDays(int.Parse(config["ReminderPeriodInDays"]));
|
|
}
|
|
|
|
public bool IsPasswordExpired(DateTime passwordLastModified)
|
|
{
|
|
// 计算密码当前的有效期
|
|
TimeSpan passwordExpirationPeriod = passwordLastModified + _maxExpirationPeriod - DateTime.Now;
|
|
return passwordExpirationPeriod < TimeSpan.Zero;
|
|
}
|
|
|
|
public bool IsPasswordExpiringSoon(DateTime passwordLastModified)
|
|
{
|
|
// 判断密码是否接近过期提醒期
|
|
TimeSpan passwordExpirationPeriod = passwordLastModified + _maxExpirationPeriod - DateTime.Now;
|
|
return passwordExpirationPeriod < _reminderPeriod;
|
|
}
|
|
}
|
|
}
|