【问题标题】:Multiple ASPSESSIONID in cookies Not Resolvedcookie 中的多个 ASPSESSIONID 未解决
【发布时间】:2015-05-08 11:28:47
【问题描述】:

我有类似this example 的问题 我还创建了该脚本:

<% If trim(Session("test_val")) = "" Then
     Dim my_num
     Randomize
     number = Int((rnd*1000))+1
     Session("test_val") = number
   End If
%>

<b>Session ID:</b>
<% response.write(Session.SessionId) %><br /><br />

<b>Session("test_val"):</b>
<% response.write(Session("test_val")) %><br /><br />

<b>Session Timeout:</b>
<% response.write(Session.Timeout) %> minutes<br /><br />

<b>Server Software:</b>
<% response.write(Request.ServerVariables("SERVER_SOFTWARE")) %><br /> <br />

<b>HTTP_COOKIE:</b> <% response.write(Request.ServerVariables("HTTP_COOKIE")) %>

每个页面请求后我得到不同的结果

Session ID: 619163854

Session("test_val"): 784

Session Timeout: 480 minutes

Server Software: Microsoft-IIS/8.5

HTTP_COOKIE: ASPSESSIONIDQQATDABC=EMAJHOECJIKDFKKHFFKIGDEK

Session ID: 619245915

Session("test_val"): 39

Session Timeout: 20 minutes

Server Software: Microsoft-IIS/8.5

HTTP_COOKIE: ASPSESSIONIDQQATDABC=EMAJHOECJIKDFKKHFFKIGDEK; ASPSESSIONIDQSDTCDCB=OMALHOECNLEJLAHGOJEGDNIJ; ASPSESSIONIDQSATDBAD=EFBPIOECEIAAAGKFOJMECCOM; ASPSESSIONIDQQCTCAAC=LFBPIOECGGPIJAINBPKIDNFF

并且每次刷新 ASPSESSIONID 仍然附加到 cookie

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
          <rewriteMaps>
            <clear />
            <rewriteMap name="Static URL Rewrites">
              <add key="/robots.txt" value="/robots.asp" />
              <add key="/sitemap.xml" value="/sitemap.asp?format=XML" />
              <add key="/sitemap.txt" value="/sitemap.asp?format=TXT" />
            </rewriteMap>
            <rewriteMap name="Static URL Failures">
              <add key="/robots.asp" value="/" />
              <add key="/sitemap.asp" value="/" />
            </rewriteMap>
          </rewriteMaps>
          <rules>
            <clear />
            <rule name="Static URL Rewrites" patternSyntax="ECMAScript" stopProcessing="true">
              <match url=".*" ignoreCase="true" negate="false" />
              <conditions>
                <add input="{Static URL Rewrites:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Rewrite" url="{C:1}" appendQueryString="false" redirectType="Temporary" />
            </rule>
            <rule name="Static URL Failures" patternSyntax="ECMAScript" stopProcessing="true">
              <match url=".*" ignoreCase="true" negate="false" />
              <conditions>
                <add input="{Static URL Failures:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="CustomResponse" statusCode="404" subStatusCode="0" />
            </rule>
            <rule name="Prevent rewriting for static files" patternSyntax="Wildcard" stopProcessing="true">
              <match url="*" />
              <conditions>
                 <add input="{REQUEST_FILENAME}" matchType="IsFile" />
              </conditions>
              <action type="None" />
            </rule>

          </rules>
        </rewrite>
        <defaultDocument>
            <files>
                <remove value="default.aspx" />
                <remove value="iisstart.htm" />
                <remove value="index.html" />
                <remove value="index.htm" />
                <remove value="Default.asp" />
                <remove value="Default.htm" />
                <add value="index.asp" />
            </files>
        </defaultDocument>
        <directoryBrowse enabled="false" />
        <httpErrors errorMode="DetailedLocalOnly" defaultPath="D:\err.html">
            <remove statusCode="401" subStatusCode="-1" />
            <remove statusCode="403" subStatusCode="-1" />
            <remove statusCode="404" subStatusCode="-1" />
            <remove statusCode="405" subStatusCode="-1" />
            <remove statusCode="406" subStatusCode="-1" />
            <remove statusCode="412" subStatusCode="-1" />
            <remove statusCode="500" subStatusCode="-1" />
            <remove statusCode="501" subStatusCode="-1" />
            <remove statusCode="502" subStatusCode="-1" />
        </httpErrors>
        <urlCompression doStaticCompression="false" doDynamicCompression="false" />
        <httpProtocol>
            <customHeaders>
                <remove name="X-Powered-By" />
            </customHeaders>
        </httpProtocol>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="4290000000" />
            </requestFiltering>
        </security>
    </system.webServer>
    <system.web>
        <sessionState mode="Off" />
    </system.web>


</configuration>

我有 1 个应用程序池 为什么:

  1. 会话超时已更改?
  2. ASPSESSIONID 相乘?

【问题讨论】:

标签: asp.net session cookies asp-classic web-config


【解决方案1】:

https://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.71).aspx

请更换你的

<system.web>
        <sessionState mode="Off" />
</system.web>

或删除此部分

【讨论】:

  • 我第一次给出错误答案。你能把OFF改成InProc吗
  • 但是如何使用 OFF 开关 Session 完全可以工作?现有的交换机没有一个不能解决这个问题
  • 可能是您的项目中的其他内容与 Session 混淆?你能在 IIS 中创建空白的 Web 和池应用程序,并且只放置一个带有示例代码的 ASP 页面吗?不要将 web.config 放入新的 Web 应用程序中。我们在做什么——我们只是试图验证该问题不在服务器 (IIS/OS) 本身上,也不在此页面上。
  • 我在 web.config 中设置了&lt;httpCookies requireSSL="true" httpOnlyCookies="true" /&gt;,我注意到如果我删除 sessionState 行,它可以让这些 cookie 安全,但是当我保持&lt;sessionState... 它仍然显示在我的 cookie 中列表。您是否尝试过删除&lt;httpCookies...(如果存在)但使用&lt;sessionState mode="off"/&gt;
猜你喜欢
  • 1970-01-01
  • 2018-06-06
  • 2014-06-10
  • 2016-07-28
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
相关资源
最近更新 更多