如何检测ASP上的Active Directory用户.网络页面
本文关键字:Directory Active 用户 网络 上的 ASP 何检测 检测 | 更新日期: 2023-09-27 17:50:14
我有一个web应用程序,它在很大程度上是一个内容系统——也就是说,它为另一个系统显示帮助。谁看并不重要。但是,我想显示一个用户列表,并提供一种编辑该列表的方法。在这个页面上,我想检测用户的Active Directory信息,如果用户在有权更改数据的用户列表中,那么显示一个编辑图标按钮,以提供编辑某些元素的方法。我不需要也不希望Windows身份验证确定用户是否可以访问页面,只是为了发现用户的登录凭证。
简而言之,我想要这个:
// Get the user's creds
// Is user a page editor?
if (IsPageEditor(UserCreds))
{
// put icon buttons for editing
}
else
{
// don't put icon button there
}
首先当然是获取用户凭据。我应该补充一下,这些都将在私人公司的内部网上,每个用户都将登录到网络。
我不需要也不希望Windows身份验证确定用户是否可以访问页面,只是为了发现用户的登录凭证。
为什么不呢?Windows身份验证是发现连接用户的Windows身份的明显、安全的方法。
任何其他机制都是不安全的,即未经授权编辑的用户可以欺骗已授权用户的身份。使用Windows身份验证并不妨碍您允许任何用户访问应用程序。
我对设置Windows的理解。身份验证ON是在允许用户查看页面
之前,要求用户提供用户名和密码。
不,这不对。如果服务器与客户端处于同一域中,并且服务器被配置为允许所有域用户连接,则不需要向最终用户提示。
当我们访问页面时,我们的故障单系统"知道"我们是谁——它一定是从活动目录、从当前登录的用户那里获得这些信息的。
可能是使用Windows身份验证。尝试使用Fiddler等工具检查浏览器和故障单系统之间的HTTP流:您可能会看到身份验证挑战/响应。
要获取当前登录的用户,您需要调用WindowsIdentity.GetCurrent();
从那里你可以根据你的需求做很多事情,获取用户组,获取OU信息等。关于完整的广告包装,我在这里有一篇完整的文章
http://macaalay.com/2010/06/28/active-directory-c/