首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为用户凭据提示触发Windows?

如何为用户凭据提示触发Windows?
EN

Stack Overflow用户
提问于 2020-04-02 07:56:29
回答 2查看 802关注 0票数 3

我正在寻找一个在Windows 8.1和Windows 10上都能工作的想法/解决方案。

对于我的WPF应用程序中的关键操作,我希望用户再次显式地针对操作系统进行身份验证。在web上存在许多自定义解决方案,比如NuGet包,它们看起来像一个向用户询问密码的Windows提示符。就像出现的那个一样,如果您试图访问未经身份验证的网络共享。

我不想使用那些自定义的解决方案,我想使用操作系统提供的解决方案,如果有的话。

详细地说,我正在寻找这样的东西:

代码语言:javascript
复制
WindowsIdentity identity = WindowsIdentity.GetCurrent();
bool authenticated = [WindowsAPI].Authenticate(identity);
if(authenticated)
{
    //do critical action
}

这样的WindowsAPI存在吗?

编辑: WindowsAPI应该有自己的UI,在最好的情况下,验证凭据而不存储任何凭据。

向你问好,克里斯蒂安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-06 08:00:14

总体答案是:不,不存在包含自己的UI并对输入的凭据进行验证的Windows。

简而言之,我使用了弹出可配置操作系统对话框的CredUIPromptForWindowsCredentials输入凭据,使用CredUnPackAuthenticationBuffer解压缩凭据,使用LogonUser验证未打包的凭据。最后,使用CredUIPromptForWindowsCredentials使用CoTaskMemFree清除分配的内存。

博士女士:

P/援引文件:

票数 0
EN

Stack Overflow用户

发布于 2020-04-02 08:19:43

bool authenticated = [WindowsAPI].Authenticate(identity);应该让用户再输入一次登录和密码吗?

您可以尝试使用Windows LogonUser。但是,它不提供用户界面来收集用户名和密码。您可以尝试用自己的两个文本框创建一个对话框。

IPublicClientApplicationAcquireToken*方法。请查一下AcquireTokenByIntegratedWindowsAuth。但是,它与AzureAD一起工作以获得令牌,因此我不确定它是否适合您的需求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60986728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档