我们正在研究基于机器的身份验证,允许特定计算机上的任何用户访问我们的.Net站点。机器列表将更改,但都在内部网络上。假设它们的IP地址不是静态的。
为了使其更易于管理,我们希望能够限制对Active Directory计算机组的访问。
我可以管理AD查询,我的问题是哪里是提取机器名称和验证整个会话的最佳位置?
我研究了创建一个新的HttpModule,但似乎我必须验证每个请求。如果涉及AD查询,则认证每个请求似乎并不理想。
答案 0 :(得分:3)
网络是无状态的,因此无论您使用何种技术,每个请求始终都经过身份验证。但是,不打击AD的诀窍是使用会话http cookie。您可以在第一个请求中设置此cookie,并在后续请求中检查它。您需要对cookie进行某种加密保护,但幸运的是,这是在ASP.NET中准备好的。我想你可以利用Forms Authentication基础设施来设置和验证cookie - 你只需将初始身份验证卸载到AD而不是从已发布的表单中读取。
这是一个很好的起点:
了解表单身份验证故障单和Cookie http://support.microsoft.com/kb/910443
答案 1 :(得分:1)
您无需验证每个请求。使用HttpModule验证第一个请求,并将请求者添加到会话中,或者在短时间内缓存凭据。