【问题标题】:Authentication of Windows Local User account in C# 3.0C# 3.0 中 Windows 本地用户帐户的身份验证
【发布时间】:2009-03-04 07:21:16
【问题描述】:

如何在 C# 3.0 中验证本地 Windows 用户帐户。我必须验证密码的 Windows 操作系统是 Vista 和 Win2K8。 注意:用户帐户是本地帐户,而不是域帐户。 我在 C# 3.5(PrincipalContext 类)中找到了解决方案,但在 3.0 框架中找不到。 求推荐,谢谢

【问题讨论】:

  • 您验证帐户的目的是什么?是否以该用户身份运行一些代码?还是以该用户身份访问某些资源?
  • 我们正在准备一个安装程序,它会在系统上创建一些帐户。如果系统已经有这些帐户,那么我们需要使用该用户提供的密码对这些帐户进行身份验证。

标签: c# .net windows authentication user-accounts


【解决方案1】:

如果您希望验证本地用户,可以使用 LogonUser 来执行此操作。它可以验证本地和远程用户。对于本地用户,只需传递机器名称来代替域。

以下博客条目详细介绍了如何从 C# 调用此函数。

[http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToGetATokenForAUser.html]

https://web.archive.org/web/20110224015020/http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToGetATokenForAUser.html

编辑

这是验证用户身份的最佳方式。完成会话后,您应该在生成的令牌上调用 CloseHandle。

【讨论】:

  • 感谢您的信息。它运行良好。但我只关心它创建的登录会话。我对此没有太多想法。当我们只需要验证密码时,这是一个很好的方法吗?我是否需要编写代码来注销会话?是否有任何直接的方法来验证密码
  • 没关系。它与任何服务用于验证用户凭据的 API 相同。 NETWORK (3) 的登录类型我相信不会加载用户的配置文件或类似的东西。请务必关闭返回的句柄。
猜你喜欢
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2015-10-03
  • 2017-03-12
  • 2014-02-23
相关资源
最近更新 更多