我有一个主要是内容系统的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
}
首先当然是获取用户凭据。我应该补充一点,这将全部在私人公司内部网上,每个用户都将登录到网络中。
答案 0 :(得分:1)
要获取当前登录用户,您需要致电WindowsIdentity.GetCurrent();
从那里你可以做很多事情,具体取决于你的要求,获取用户组,获取OU信息等。对于完整的AD包装,我在这里有一篇完整的文章
答案 1 :(得分:1)
我不需要也不希望Windows身份验证确定用户是否可以访问该页面,只是为了取消用户的登录信用。
为什么不呢? Windows身份验证是发现已连接用户的Windows身份的明显,安全的方法。
任何其他机制都是不安全的,即未被授权编辑的用户可能欺骗授权用户的身份。使用Windows身份验证并不妨碍您允许任何用户访问该应用程序。
我对设置Windows.Authentication ON的理解是,在允许查看页面之前,它会挑战用户提供用户名和密码
不,这不正确。如果服务器与客户端位于同一域中,并且服务器配置为允许所有域用户连接,则不需要向最终用户发出提示。
我们的故障单系统"知道"当我们访问页面时我们是谁 - 它必须从当前登录用户的Active Directory获取此信息。
可能是使用Windows身份验证。尝试使用Fiddler等工具检查浏览器和故障单系统之间的HTTP流:您可能会看到身份验证质询/响应。