c# - 用户主体安全。禁用不需要的智能卡提示?

标签 c# security prompt smartcard principalcontext

我有一个带有登录屏幕的应用程序,用户可以根据域对自己进行身份验证。为此,我使用了 System.DirectoryServices.AccountManagement PrincipalContext/UserPrincipal 类。

                        PrincipalContext domain = new PrincipalContext(ContextType.Domain, "mydomain");
                    if (domain.ValidateCredentials(UserName, Password))
                    {
                        //do stuff
                    }

这在绝大多数情况下都非常有效。但是,对于少数选定的人来说,这种“domain.ValidateCredentials”方法会在发现 UserName 在域中有效时自动提示插入智能卡。只需再次关闭提示即可让我的应用程序继续,但我更愿意完全摆脱它。

Smart Card Prompt

我没能找到原因/解决方案。如有任何帮助,我们将不胜感激!

最佳答案

我今天也遇到了同样的问题。 对我有用的解决方案:添加 [System.DirectoryServices.AccountManagement.ContextOptions]'协商'ValidateCredentials 方法:

domain.ValidateCredentials(UserName, Password, [System.DirectoryServices.AccountManagement.ContextOptions]'Negotiate')

关于c# - 用户主体安全。禁用不需要的智能卡提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62152897/

相关文章:

c# - 是什么导致此 ASP.NET 标记被视为字符串?

c# - C#中的printf是什么

c# - 为什么 Thread.Sleep() 会卡住表单?

javascript - 为什么这段代码不会在浏览器中提示一次?

javascript - 我如何使用 3 个复选框/单选按钮作为选项在 javascript 中创建提示?

c# - 如何使用此枚举列表减少代码

api - 如何保护API?

asp.net - 常见的网络攻击

c# - 有没有 "single line"方式生成加密字符串?

linux - 自动回答交互式 shell 提示(是/否)