我有一个使用 System.DirectoryServices 和 LDAP 进行身份验证的 .Net 客户端 WPF 应用程序。在应用程序启动时,我想强制用户使用他们的域帐户(这是他们登录 Windows 的方式)重新进行身份验证。我知道我可以在连接可用时使用以下方法执行身份验证。
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,
userName, password);
问题是该应用程序有时会被可能没有连接的远程用户使用。即使断开连接,Windows 本身仍然允许域用户登录。是否有类似的方法在使用 .Net Framework 的断开连接的环境中对用户进行身份验证?
最佳答案
没有联系就没有联系。 Windows 为该用户维护上次登录的缓存版本(这意味着新用户将无法登录到未连接到域的计算机)。您可以使用本地系统身份验证来找出哪个用户正在使用该系统,并据此确定本地缓存的权限。这些方法仍将位于 System.DirectoryServices
命名空间内,但解析查询的位置会发生变化(而且我认为它不会在本地接受 LDAP 查询)。
编辑:
您还可以在 System.Security
/System.Security.Permissions
命名空间中找到一些类来满足这些需求。
关于.net - 断开连接时使用 .Net 对 Active Directory 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4380601/