web.config和目录访问

时间:2012-03-03 20:58:23

标签: asp.net web-config shared-hosting

基本上我正在尝试配置访问共享主机上的特定文件夹,我将其用作指南:http://support.microsoft.com/kb/316871

我的web.config的这一部分:

<system.web>
  <authorization>
    <deny users="?"/>

  </authorization>
  <authentication mode="Forms">

    <forms name="Authlogin" loginUrl="logon.aspx" protection="All" timeout="60" path="." />

  </authentication>

因此,如果用户未经授权,则会将其重定向到logon.aspx。 这个解决方案适用于visual studio测试服务器,用户被重定向到logon.aspx,但它在我的共享主机(godaddy)上根本不起作用。看起来规则被忽略了。 任何想法如何使其工作...或为什么它不能用于托管?

修改 我注意到如果我请求任何asp页面(ashx,apsx,asmx)然后我将被重定向到logon.apsx.But如果我要求任何文件(html,txt,jpg和ect)然后表单身份验证将被忽略了。 在本地IIS 7.5上发生同样的事情

1 个答案:

答案 0 :(得分:0)

我发现问题和解决方案。问题是什么IIS和ASP.NET只控制asp.net pages.So以使IIS能够查看我在web.config中进行此更改的所有文件 首先,我在system.webserver

中添加了这个
<modules>
      <remove name="FormsAuthenticationModule" />
      <add name="FormsAuthenticationModule"    type="System.Web.Security.FormsAuthenticationModule" />
      <remove name="UrlAuthorization" />
      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
      <remove name="DefaultAuthentication" />
      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
</modules>

这将使IIS能够使用ASP.NET表单身份验证(这是我理解它=))) 当我在同一个system.webServer

中添加它时
<security>
      <authorization>
        <remove users="*" roles="" verbs="" />
        <add accessType="Deny" users="?"/>
        <add accessType="Allow" users="*"/>
      </authorization>

我希望我的解决方案可以帮助任何有同样问题的人