ASP.NET MVC/URL中的神秘字符
本文关键字:字符 URL NET MVC ASP | 更新日期: 2023-09-27 17:59:45
我在ASP中部署了一个网站。NET MVC(版本5.2.3.0),我面临着一个奇怪的问题,有时URL中会出现一些字符,例如:www.website.com/(X(1)S(3hfps41rchxt45wwrsn4o5bi))/RestOfRoute而非www.websitecom/RestOfRoute
它是随机发生的,神秘字符串总是匹配(X(1)S(*))。
在stackoverflow上搜索后,我发现它可能与无会话cookie有关,但我的网站没有使用它。以下是Web.config的摘录,可能会有所帮助:
<authentication mode="Forms">
<forms loginUrl="<url>" timeout="2880" />
</authentication>
有人知道这个问题的根源是什么吗?
编辑1:
web.config 的"system.web"块
<system.web>
<customErrors mode="RemoteOnly" />
<compilation debug="false" targetFramework="4.5">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="<url>" timeout="2880" />
</authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.WebPages"/>
<add namespace="Telerik.Web.Mvc.UI"/>
</namespaces>
</pages>
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/>
<add path="Telerik.Web.UI.DialogHandler.axd" verb="*" type="Telerik.Web.UI.DialogHandler" validate="false"/>
<add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc"/>
</httpHandlers>
<httpRuntime maxRequestLength="2048576000" />
</system.web>
<configuration>
<system.web>
<sessionState cookieless="true"
regenerateExpiredSessionId="true" />
</system.web>
</configuration>
我很确定,你的web.config
包括了这个。这使得会话按选项卡进行。每个选项卡都有唯一的标识符,在这个标识符的帮助下,服务器将知道哪个选项卡正在请求。