我正处于我正在处理的网站的情况下,经理希望允许用户登录,如果他们通过http或https登录则不用担心.基于另一个SO问题(如何在http和https之间共享一个asp.net会话)我认为如果我在cookie上设置secure = false,这将是可能的.为此,我们使用子域作为站点的安全部分.因此,对于http,我们使用site.com,而https使用secure.site.com.所以我尝试在web.config中设置域以进行身份验证.
<authentication mode="Forms">
<forms loginUrl="/account/login"
protection="All" timeout="30" name=".ASPXAUTH" path="/"
requireSSL="false" slidingExpiration="true" defaultUrl="/"
cookieless="UseDeviceProfile" domain="site.com"
enableCrossAppRedirects="false" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我知道存在一些安全问题,我会在提出请求时解决这些问题.我只想让用户登录一次,并通过http和https记住.谢谢.
我认为您的 web.config 中有错误的域。你应该将其更改为
domain=".site.com"
Run Code Online (Sandbox Code Playgroud)
例如,您允许表单身份验证 cookie 同时存在于 ssl.site.com 和 no-ssl.site.com 域上。
话虽这么说,任何类型的安全性都以 https:// 开头,覆盖您的所有解决方案 - 否则您很容易遭受中间人攻击(Web 代理可以将不适当的内容注入您的解决方案,他们可以窃取您的授权 cookie并在https://ssl.site.com等流程中使用它。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |