asp.net - 我的带有表单例份验证的 ASP.NET MVC2 应用程序甚至阻止对图像、样式和脚本的访问

标签 asp.net asp.net-mvc asp.net-mvc-2 forms-authentication iis-7.5

我正在开发一个 MVC2 应用程序并在其上使用表单例份验证。

脚本、图像和样式都被阻止给未登录的用户,因此,登录页面看起来很糟糕。

它在本地运行良好,问题是当我发布到服务器时。

有人知道为什么吗???

PS:服务器IIS版本为7.5

我的Web.config:

<configuration>
  <system.web>
    <globalization culture="pt-BR" uiCulture="pt-BR" />
    <httpRuntime requestValidationMode="2.0"/>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.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=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>

    <pages>
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="Admin.Models" />
      </namespaces>
    </pages>

    <authentication mode="Forms">
      <forms name="AGAuth" loginUrl="~/Home/Login" timeout="120" />
    </authentication>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

  <connectionStrings>
      <add name="DBContainer" connectionString="metadata=res://*/Database.DB.csdl|res://*/Database.DB.ssdl|res://*/Database.DB.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=thewebserver.com,5158;Initial Catalog=thedatabase;Persist Security Info=True;User ID=theuser;Password=thepassword;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

</configuration>

最佳答案

将 web.config 添加到脚本、图像和样式文件夹中,告诉 asp.net 允许所有用户访问(确保其中没有任何不希望匿名用户访问的内容) ):

<configuration>
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
</configuration>

至于原因,下面是告诉IIS让asp.net处理所有的请求:

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

关于asp.net - 我的带有表单例份验证的 ASP.NET MVC2 应用程序甚至阻止对图像、样式和脚本的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722399/

相关文章:

c# - 如何加入 2 个通用 IEnumerators

c# - 覆盖现有的日志文件

c# - 无法添加类型为 'filter' 且唯一键属性 'name' 设置为 'ASP.Net_4.0_64bit' 的重复集合条目

html - 如何将网页内容堆叠成两列并保持页面大小一致

c# - 我的 Controller 对象是否会为每个请求实例化并从内存中销毁?

c# - 使用 MVC 2 中手动定义的 SelectListItems 中的 SelectList 呈现问题

asp.net-mvc-2 - MVC Html.TextBoxFor MaxLength 和 Value

javascript - Angularjs $http.post - 将参数作为 JSON 发送到 ASPX webmethod

javascript - 在 razor foreach 语句中调用 JS 函数

javascript - 如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?