有没有办法在 C# 中查询当前用户的密码期限(以天为单位)?
Is there a way to Query current user's password age (in days) in C#?
具体来说,我想确定当前密码的有效期,以便我可以将其以 windows 形式显示在文本框中。
也许WMIC 库中有一些我没见过的东西?
编辑:
如果您使用 net user
+ windows 用户名(我可以轻松提取),您会得到包含密码设置日期和密码到期时间的结果。我想提取该数据。
试一试:
using (var userEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + '/' + Environment.UserName + ",user"))
{
int secondsSinceLastChange = (int)userEntry.InvokeGet("PasswordAge");
int daysSinceLastChange = secondsSinceLastChange / 60 / 60 / 24;
Console.WriteLine("{0} days since your last password change.", daysSinceLastChange);
}
您可能需要添加 System.DirectoryServices
参考。
具体来说,我想确定当前密码的有效期,以便我可以将其以 windows 形式显示在文本框中。
也许WMIC 库中有一些我没见过的东西?
编辑:
如果您使用 net user
+ windows 用户名(我可以轻松提取),您会得到包含密码设置日期和密码到期时间的结果。我想提取该数据。
试一试:
using (var userEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + '/' + Environment.UserName + ",user"))
{
int secondsSinceLastChange = (int)userEntry.InvokeGet("PasswordAge");
int daysSinceLastChange = secondsSinceLastChange / 60 / 60 / 24;
Console.WriteLine("{0} days since your last password change.", daysSinceLastChange);
}
您可能需要添加 System.DirectoryServices
参考。