使用ASP.NET MVC + IIS 6.0 +基本身份验证进行会话管理

时间:2011-08-19 18:53:52

标签: asp.net-mvc authentication iis-6

我将很快开始使用ASP.NET MVC(C#)开发一个开发项目,但是我想首先确定如何解决现有ASP经典应用程序在新环境中的一些缺点。我们的Intranet Web服务器正在运行IIS6,由于某种原因(显然是由于负载均衡器),IT团队已经确定Windows Integrated auth将无法工作,因此我们不得不使用basic。我喜欢做基于表单并查询AD,但这不是出于安全目的的选择。因此,挑战是模仿使用基于表单的身份验证可以做什么,但实际上使用基本身份验证。特别是,能够做一些至少近似退出的事情将是美好的。 IT团队的首席网络开发人员表示,他放弃了尝试让它发挥作用。似乎有很多关于此的信息,但由于配置的变化,似乎很多冲突。

根据我们的配置,是否有实现这一目标的最佳做法?

到目前为止,我发现最好的只是进行某种手动会话跟踪,然后如果'会话'超时,或者如果它们被标记为已经超时,则通过401回复再次提示登录信息注销,然后在关闭和打开浏览器之前再次访问该页面。看起来这样可行,但有更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:2)

一个小观点:身份验证和会话是ASP.NET中的两个不同概念,尽管术语很容易让它们容易混淆。

身份验证具有在Cookie中加密的身份验证票证,这通常会限制您在需要重新进行身份验证之前登录该站点的时间。这也可能是滑动缩放,或者永远不需要您重新进行身份验证,具体取决于您的身份验证配置方式。

会话是在特定时间间隔(经过身份验证和未经身份验证)的会话状态中保存的数据,并由其自己的cookie进行跟踪。根据会话和身份验证的配置方式,可能会出现用户身份验证时间间隔过去的情况,要求他们登录,但仍然有会话数据,反之亦然。

听起来您正在谈论Intranet应用程序,因为您希望使用Windows authenticatio n和Active Directory对用户进行身份验证并授权这些用户在应用程序中可以执行的操作。对于Intranet应用程序而言,这可以很好地工作,我不完全确定有关此问题的安全问题。你能详细说明一下吗?

如果您正在谈论互联网应用程序并希望将Windows身份验证和Active Directory用于Intranet用户并为其他任何人进行表单身份验证,那么这当然也可以实现。您可能需要查看 Windows Identity Foundation 来实现此目标。