0

我使用 Visual Studio 2010 和 IIS 7 创建了一个 MVC 3 项目。将我的项目部署到 IIS 后,我可以使用我的域地址成功访问该网站,但我的文本显示在浏览器上,而不是图像、样式表等。 . 我在浏览器上右键单击其中一个图像以在新选项卡上打开,该站点将我重定向到登录页面。所以我想知道是否需要允许匿名用户查看我的 Content/images 文件夹?或者它可能与 IIS 7 有关?

我正在加载如下图像

<img src="@Url.Content("~/Content/images/image.gif")" width="413" height="220" alt="First Image" /></div>

这是我的项目 web.config

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
<connectionStrings>
<remove name="LocalSqlServer" />
<add connectionString="Server=XXXX;Database=XXXX;User ID=XXXX;Password=XXXX" name="ApplicationServices" providerName="System.Data.SqlClient" />
<add connectionString="Server=XXXX;Database=XXXX;User ID=XXXX;Password=XXXX" name="LocalSqlServer" providerName="System.Data.SqlClient" />
</connectionStrings>

 <appSettings>
  <add key="webpages:Version" value="1.0.0.0" />
  <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

<system.web>
  <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.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=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" 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>

<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" />
  </namespaces>
</pages>
    <authorization>
        <allow users="?" />
        <allow users=".\johnsmith" />
    </authorization>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
    <security>
        <authorization>
            <add accessType="Allow" users="?" />
        </authorization>
    </security>
</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-2.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

谢谢,Y_Y

4

1 回答 1

1

你的Content文件夹不是公开的,而你可能是故意的。要授予它访问权限web.config,请在Content文件夹中添加一个文件并正确配置它。或者,重新配置您的主要web.config.


在运行时,授权模块迭代允许和拒绝元素,从最本地的配置文件开始,直到授权模块找到适合特定用户帐户的第一个访问规则。然后,授权模块根据找到的第一个访问规则是允许还是拒绝规则来授予或拒绝对 URL 资源的访问。默认授权规则是 . 因此,默认情况下,除非另有配置,否则允许访问。

于 2012-05-21T03:05:14.707 回答