【发布时间】:2011-06-21 08:42:11
【问题描述】:
我正在开发一个 Intranet 应用程序。该应用程序在 Windows Server 2008 上的 IIS 上运行。我正在使用 C# 对 ASP.NET 进行编码。
所以,我只想允许属于 OU ICT 成员的域用户。 我不需要登录表单,只需要自动身份验证。
Sql Server Reporting Services 就是这样工作的。用户无需登录,安全性基于AD。 -> 正是我正在寻找的。p>
我尝试了几种方法,例如使用 WidowsImpersonationContext 我在 OU 上遇到了死胡同。
如果有人可以帮助我,我将非常感激。
解决了我检查用户是否在组/ou中的部分。
但我无法在不登录的情况下从客户端机器获取 windows 用户。
你好,杰夫
【问题讨论】:
-
仅仅检查用户是否在 OU 中不是很麻烦吗?
-
我必须在 IIS 上使用什么身份验证?只有windows还是anonymous?
-
@Jeff,如果您可以将 OU 中的所有用户放入特定的 AD 组,那么您可以使用 windows 身份验证,然后使用
WindowsPrincipal.IsInRole方法进行访问控制。 -
@VinayC 感谢您的提示,如果我在我的 Visual Studio 上调试 IsInRole 但它在我的 IIS 上不起作用,那么它会抛出 System.InvalidOperationException:匿名身份无法执行模拟。在 WindowsImpersonationContext 上 wic = wi.Impersonate();
-
如果不在登录表单中输入登录名和用户名,我如何让用户通过身份验证而不是匿名的..
标签: c# asp.net iis reporting-services