限制Active Directory计算机组对.Net网站的访问

时间:2010-12-10 22:21:46

标签: c# .net httpcontext httpapplication

我们正在研究基于机器的身份验证,允许特定计算机上的任何用户访问我们的.Net站点。机器列表将更改,但都在内部网络上。假设它们的IP地址不是静态的。

为了使其更易于管理,我们希望能够限制对Active Directory计算机组的访问。

我可以管理AD查询,我的问题是哪里是提取机器名称和验证整个会话的最佳位置?

我研究了创建一个新的HttpModule,但似乎我必须验证每个请求。如果涉及AD查询,则认证每个请求似乎并不理想。

2 个答案:

答案 0 :(得分:3)

网络是无状态的,因此无论您使用何种技术,每个请求始终都经过身份验证。但是,不打击AD的诀窍是使用会话http cookie。您可以在第一个请求中设置此cookie,并在后续请求中检查它。您需要对cookie进行某种加密保护,但幸运的是,这是在ASP.NET中准备好的。我想你可以利用Forms Authentication基础设施来设置和验证cookie - 你只需将初始身份验证卸载到AD而不是从已发布的表单中读取。

这是一个很好的起点:

了解表单身份验证故障单和Cookie http://support.microsoft.com/kb/910443

答案 1 :(得分:1)

您无需验证每个请求。使用HttpModule验证第一个请求,并将请求者添加到会话中,或者在短时间内缓存凭据。