在不询问用户名和密码的情况下验证 Active Directory 用户

Posted

技术标签:

【中文标题】在不询问用户名和密码的情况下验证 Active Directory 用户【英文标题】:Authenticate Active Directory users without asking username and password 【发布时间】:2014-10-01 08:43:55 【问题描述】:

有什么方法可以通过获取他的 PC 名称 (RF18-PC\RS-Vivekh) 自动验证 Active Directory 用户,而无需用户名和密码。

这就是我想要实现的目标。我有一个应用程序,用户可以通过输入他的详细信息登录。我想通过 Active Directory 实现其他类型的登录,最初我将配置我的 AD 并在我的 LAN 中添加一些用户并提供名称并将信息存储在数据库中,然后用户使用该用户名和密码登录系统可以转到我们的网页,我的应用程序将通过获取 PC-NAME 自动检测,并查看数据库并检测数据库中是否存在具有该名称的相应用户,然后我将自动获取用户详细信息并将其传递给 @ 987654321@验证他是否存在于AD中。如果他存在,那么他将直接进入主页。这可以实现吗

【问题讨论】:

【参考方案1】:

在 IIS 中,您可以使用安全选项来使用 Windows 身份验证来自动检查已登录的用户。您还必须更改设置以使用 NTLM over Negotiate。

这是你说的吗?

【讨论】:

我不完全理解编辑。如果您的意思是要检查用户是否在域计算机上登录,并且用户是否有权访问主页,则 Windows 身份验证的安全选项正是您所需要的。否则我不完全理解您的编辑。 好吧,让我试着说得更清楚些。假设我有大约 10 个系统和一个连接在 LAN 中的服务器。我已经在服务器中配置了已配置的 AD 并为所有 10 台 PC 创建了个人帐户。说 system1,system2,.....system10 所以现在我将我的应用程序托管在服务器中,我将尝试从 10 个系统之一访问该应用程序。假设我正在从 system2 访问应用程序(我已经使用给定的 AD 凭据登录到系统,例如 domainname/system2),应用程序需要验证 system2 是否在我们创建的 AD 中,如果是,它应该被重定向到家直接页面 阻止我的是在上述情况下我无法获取 PC 用户名,即 system2 和域名。我可以通过本地系统中的 Environment.UserName 和 Environment.UserDomainName 来获取它,但是当我将它托管到服务器中时,无论我从哪里访问应用程序,我都会一直获取服务器本身的用户名。所以我得到的是 RSS-SERVER/SERVER 而不是 RF-PC18/system2 如果我理解正确,您想在计算机而不是用户上进行授权检查? 是否可以使用 AD 来实现这一目标,或者我们有什么完全不同的选择

以上是关于在不询问用户名和密码的情况下验证 Active Directory 用户的主要内容,如果未能解决你的问题,请参考以下文章

C#:如何在启用 SSL 的情况下连接到 Active Directory?

如何在不询问密码提示的情况下自动执行rsync [关闭]

如何在不不断传递用户名/密码的情况下识别 Go 服务器上的用户

如何在不传递用户名和密码的情况下获得salesforce Sessionid?

在不使用 Firebase 的情况下使用电子邮件和密码进行 Flutter 身份验证

是否可以在不启动核心定位的情况下向用户询问当前位置