ASP.Net网站的URL中的奇数字符

时间:2015-04-08 23:08:35

标签: asp.net web-config

我最近将我的网站移到了新的托管服务提供商处。当我第一次将浏览器指向域名时,它会重定向到托管服务提供商页面,但没有显示我的default.aspx页面。当我在浏览器中输入{mydomain} /default.aspx时,网站出现但网址中有乱码 - {mydomain} /(S(dw5sf0gbaaipba5aoef3p3n3))/ default.aspx

我研究了一下,发现我必须将以下内容添加到web.config文件中:

<defaultDocument enabled="true">
  <files>
    <clear/>
    <add value="default.aspx" />
  </files>
</defaultDocument>

现在只需将浏览器指向域即可启动我的网站,但我仍然可以在URL中找到奇怪的字符。我提交了一张支持票,并被告知,&#34;对于此问题的不便,我们深表歉意。请说明的字符可能位于您的配置文件或数据库中。非常感谢您的合作。&#34;

这不是来自数据库的任何东西,我确信这一点,也许配置文件中有一些东西导致了这个,或者我需要添加一些东西以使其停止。我不知道。下面是我的web.config,减去连接字符串。有没有看到任何导致这种情况的事情?

<?xml version="1.0"?>
<configuration>
  <system.web>
    <sessionState
          mode="InProc"
      cookieless="true"
      timeout="60" />
    <customErrors  mode="RemoteOnly" defaultRedirect="/Error.aspx"/>
    <!--mode="Off"-->
    <compilation strict="false" explicit="true" targetFramework="4.0"/>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
    </authentication>
    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
      </providers>
    </membership>
    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
          </providers>
    </profile>
    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/>
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
      </providers>
    </roleManager>
  </system.web>
  <system.webServer>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="default.aspx" />
      </files>
    </defaultDocument>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:1)

您正在使用无Cookie身份验证。由于它不能使用cookie,因此必须将会话信息放在URL中。哪个是不安全的。微软表示不这样做。

更改

<sessionState mode="InProc" cookieless="true" timeout="60" />

<sessionState mode="InProc" timeout="60" />