如何访问MVC 3项目中的文件夹?

时间:2012-05-21 02:56:36

标签: asp.net-mvc-3

我使用visual studio 2010和IIS 7创建了一个MVC 3项目。在将项目部署到IIS之后,我可以使用我的域名地址成功访问该网站,但我的文本显示在浏览器上但不是图像,样式表,等...我右键单击浏览器上的一个图像,在新选项卡上打开,然后该站点将我重定向到登录页面。所以我想知道我是否需要访问我的内容/图像文件夹以供匿名用户查看?或者它可能与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

1 个答案:

答案 0 :(得分:1)

你可能意味着Content文件夹 public 。要授予其访问权限,请在内容文件夹和configure it properly中添加web.config文件。或者,重新配置您的主要web.config


  

在运行时,授权模块遍历allow和   拒绝元素,从最本地的配置文件开始,直到   授权模块找到适合的第一个访问规则   特定用户帐户。然后,授权模块授予或   拒绝访问URL资源,具体取决于是否第一次访问   找到的规则是允许或拒绝规则。默认授权规则   是。因此,默认情况下,允许访问,除非   否则配置。