我有一个混合 SSL 的 web 应用程序(asp.net 3.5)。所有与帐户相关的页面均通过 SSL 提供。大多数其他页面都是通过非 SSL 交付的。为了在 HTTPS 和 HTTP 之间自动切换,我使用了这个组件。最近有一个关于在非安全 Wifi 网络上劫持用户会话的能力的新闻。这应该可以通过捕获通过非 SSL 连接传输的 Cookie 来实现。
这促使我检查了我在此 Web 应用程序中的安全选择。我(再次)从 MSDN 中获取了这篇文章,并在我的 Formsauthentication 上尝试了requireSSL=true属性。在我启动 Web 应用程序之前,我意识到我的 User.Identity 在非 SSL 页面上将为空,因为包含此信息的 cookie 不会从 Web 浏览器发送或发送到 Web 浏览器。
我需要一种通过 SSL 连接对用户进行身份验证的机制......并记住此身份验证信息,即使在非 SSL 页面上也是如此。
在搜索 SO 时,我发现了这篇文章。在我看来,这是一个很好的解决方案。但是,我想知道在Sessionstate中存储登录信息是否可以找到解决方案?我正在考虑在 Global.asax 中捕获 Application_AuthenticateRequest。检查连接是否安全并检查 authcookie 或 Session。我还不知道我将如何实现这一点。也许你可以和我一起思考这个?