我正在寻找适用于 Windows 8.1 和 Windows 10 的想法/解决方案。
对于我的 WPF 应用程序中的关键操作,我希望用户再次针对操作系统显式进行身份验证。网络上存在许多自定义解决方案,例如 NuGet 包,它们看起来像 Windows 提示符,要求用户输入密码。就像显示的那样,如果您尝试访问网络共享,则您未经过身份验证。
我不想使用那些自定义解决方案,我想使用操作系统提供的解决方案(如果有)。
详细来说,我正在寻找类似的东西:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
bool authenticated = [WindowsAPI].Authenticate(identity);
if(authenticated)
{
//do critical action
}
这样的 WindowsAPI 存在吗?
EDIT:WindowsAPI 应该有自己的 UI,并且在最好的情况下,验证凭据并且不存储任何凭据。
bool authenticated = [WindowsAPI].Authenticate(identity);
是否应该要求用户再次输入登录名和密码?
您可以尝试使用Windows API登录用户 https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-logonusera。但它不提供收集用户名和密码的 UI。您可以尝试自己创建一个带有两个文本框的对话框表单。
有IPublicClientApplication
and AcquireToken*
方法。请检查通过集成 WindowsAuth 获取令牌 https://learn.microsoft.com/en-us/dotnet/api/microsoft.identity.client.ipublicclientapplication.acquiretokenbyintegratedwindowsauth?view=azure-dotnet。
但是它与 AzureAD 一起获取令牌,所以我不确定它是否符合您的要求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)