我有一个网站,它完全通过HTTPS.即使有人试图通过HTTP访问,他也会被重定向到HTTPS.我正在使用表单身份验证.最近我更改了一个设置,使网站更安全,之后Session没有保留值,并且总是返回null.设置是,
<httpCookies httpOnlyCookies="true" requireSSL="true"/>
<sessionState cookieless="false"/>
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题.我该如何解决这个问题?另外,如果我不使用此设置,我的网站是否容易受到攻击?考虑其他一切都是安全的.
你的问题太笼统了,没有太多线索,所以我可以给你一些继续前进的要点。
[1]还在 cookie 上设置domain,不带www.,因此即使错误地丢失了 www ,也可以读取和设置 cookie。
<httpCookies domain="yourdomain.com" httpOnlyCookies="true" requireSSL="true"/>
Run Code Online (Sandbox Code Playgroud)
[2]您还需要<forms...使用类似的参数进行设置(以及您设置的其他内容)
<forms name=".klidi" path="/" requireSSL="true" cookieless="UseCookies"
domain="yourdomain.com" enableCrossAppRedirects="false"
slidingExpiration="true" />
Run Code Online (Sandbox Code Playgroud)
[3]您还需要设置<roleManager类似的参数。
<roleManager enabled="true" cacheRolesInCookie="false" cookieProtection="All" cookieSlidingExpiration="true"
cookieTimeout="20" domain="yourdomain.com" cookieRequireSSL="true">
Run Code Online (Sandbox Code Playgroud)
最后最重要的一点是,在尝试设置或使用任何 cookie 之前,在代码中设置此行,以查看是否错误地没有使用安全连接https。
Debug.Assert(HttpContext.Current.Request.IsSecureConnection, "With out https, cookie will not work");
Run Code Online (Sandbox Code Playgroud)
通过设置最后一行,当您创建网站时,您可以在计算机上查看并诊断问题是否来自非安全连接,因为从您将其设置为requireSSLtrue 的那一刻起,任何简单的连接都不会保留任何 cookie。
如果 cookie 以不安全的方式存在并且您有任何冲突,也请尝试清除您的 cookie,或者尝试其他浏览器。
您还可以阅读:某些黑客可以窃取用户的 cookie 并使用该名称登录网站吗?
| 归档时间: |
|
| 查看次数: |
2956 次 |
| 最近记录: |