基本上我正在尝试配置访问共享主机上的特定文件夹,我将其用作指南: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上发生同样的事情
答案 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>
我希望我的解决方案可以帮助任何有同样问题的人