gpt4 book ai didi

c# - System.Security.Principal.WindowsIdentity 和 WinForms 身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:12 24 4
gpt4 key购买 nike

我想利用 Windows 身份验证模型对使用我的 C# 3.5 WinForms 应用程序的用户进行身份验证:

  1. 已登录 Windows 的用户会自动登录到我的应用程序。
  2. 如果用户想明确登录,Windows 应该检查他的用户名和密码,或者更好的是,Windows 使用标准的 Windows 对话框提示。结果应该是另一个 WindowsIdentity 对象。

第一个很久以前就很容易解决:我读了

WindowsIdentity identity = WindowsIdentity.GetCurrent();

为了确定,我检查了

if (identity.IsAuthenticated) { ... }

对于第二种情况,我在其他 SO 问答中发现了一些 API 调用,但我很确定必须有一种管理方式,我错了吗?

此外,我想知道我对 1. 的处理方法是否妥当。感谢您的反馈!

更新:根据 Ivan 的说法,我必须使用 P/Invoke 方法。这基本上没问题,但我仍然需要一种方法来检索该特定用户的 WindowsIdentity 对象,该用户的 IsAuthenticated 属性设置为 true。 P/Invoke 调用本身不返回此类对象。 如何做到这一点?

最佳答案

我不确定这一点,但看起来你想使用 WindowsIdentity Ctor需要一个 IntPtr。要获取传递给此构造函数的参数,您可以调用 Win32 API LogonUser() 函数。这将为您提供此用户的 WindowsIdentity。

关于c# - System.Security.Principal.WindowsIdentity 和 WinForms 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com