如何在web.config中指定根位置以允许未经身份验证的用户访问它?
根位置由default.aspx提供,但用户通常看不到default.aspx,他们只是看到了http://mysite.com/.
所以我补充道
<location path="~/default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
如果用户点击mysite.com/default.aspx,则有效,但如果用户点击mysite.com/- 他仍然会被重定向到登录页面.
我试过<location path="~">(不利于)也<location path="~/">,<location path="">(现场完全失败),并不能使它发挥作用.
有任何想法吗?
我的ASP.NET Forms 4.0站点正在运行表单身份验证.默认情况下,未授权用户被拒绝,然后我允许访问某些页面.我在访问默认网址时遇到问题:http:/example.com.我在web.config中有这个条目,它定义了默认页面:
<defaultDocument>
<files>
<clear/>
<add value="default.aspx" />
</files>
</defaultDocument>
Run Code Online (Sandbox Code Playgroud)
我有这个位置覆盖:
<location path="default.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
当我转到完整网址时,它工作正常:http://example.com/default.aspx,但如果我访问http://example.com,则会重定向到登录页面
有什么想法我做错了什么?
我想在我的网站上使用FormsAuthentication来保护我的静态文件,所以我按照这里的说明http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the -iis7-integrated-pipeline /标题为"为整个应用程序启用表单身份验证".
现在,当我尝试通过直接访问http://www.mysite.com访问该网站时,我被重定向到http://www.mysite.com/Login.aspx?ReturnUrl=%2f而不是使用我的我已经设置了DefaultDocument.我可以通过访问http://www.mysite.com/Home.aspx来查看我的默认文档,没有任何问题,因为它设置为允许匿名访问.
我需要添加到我的web.config文件中以使iis7允许匿名访问根目录吗?我尝试添加匿名访问但没有这样的运气.
任何帮助将非常感激.
Home和Login表单都允许匿名.
<location path="Home.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
登录表单设置为loginUrl
<authentication mode="Forms">
<forms protection="All" loginUrl="Login.aspx">
</forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)
默认文档设置为Home.aspx
<defaultDocument>
<files>
<add value="Home.aspx" />
</files>
</defaultDocument>
Run Code Online (Sandbox Code Playgroud)
我没有删除任何iis7默认文档.但是,Home.aspx是优先考虑的问题.
Login.aspx当我设置Default.aspx为默认页面时,IIS保留重定向到我.在我的开发环境中它工作正常,我到了正确的页面,但是一旦我发布并尝试从IIS服务器登录.aspx总是第一个.
我确保允许匿名用户:
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
并将其设置为默认URL(在配置的下方):
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Default.aspx"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
我甚至在IIS中设置了默认页面,但每次发布时都会重置它.