Spa*_*oft 34 asp.net iis-7 forms-authentication
我花了一天半的时间试图解决这个问题.基本上有一个ASP.net网站使用Framework 4.0在IIS7上进行表单身份验证.
授权的东西似乎对每个场景都有效,除了没有指定文件(应该解析为默认文档).
例如(请不要在网站上苛刻它仍然被开发;)), http://www.rewardroster.com/Default.aspx完美地工作,这个页面应该允许匿名访问web.config中指定的.
但如果我直接点击www.rewardroster.com它会重定向到登录页面,返回URL设置为"/"或Login.aspx?ReturnUrl =%2f
我试过的一些事情:
1)将身份验证设置为无,然后默认文档工作,这不是问题.
2)为Web.config添加了DefaultDocument属性
3)删除了IIS中默认文档列表中除Default.aspx之外的所有条目
4)在Config中添加了MachineKey条目
5)在IIS中从集成管道切换到经典管道
这是我的配置中的内容:
<authentication mode="Forms">
<forms name="appNameAuth" loginUrl="Login.aspx" protection="All" timeout="60" slidingExpiration="true" defaultUrl="Default.aspx" path="/">
</forms>
</authentication>
</authentication>
<location path="Default.aspx">
Run Code Online (Sandbox Code Playgroud)
非常感谢你的时间,希望有人知道这里发生了什么.
小智 39
这是我的解决方案:
在Global.asax,方法:Application_BeginRequest,放置以下内容:
if (Request.AppRelativeCurrentExecutionFilePath == "~/")
HttpContext.Current.RewritePath("HomePage.aspx");
Run Code Online (Sandbox Code Playgroud)
简单,如果您的网站使用基于配置变量的多个主页,您有机会围绕要使用的主页构建逻辑.
Dmitry.Alk
小智 8
当我试图触及根路径时,我看到同样的问题,我尝试了前面提到的所有内容.似乎Asp.net 4.0为IIS 7的applicationhost.config添加了两个ExtensionlessUrl模块.您可以通过在web.config中添加以下内容来删除这些模块.
<system.webServer>
<handlers>
<remove name="ExtensionlessUrl-Integrated-4.0"/>
<remove name=" ExtensionlessUrl-ISAPI-4.0_32bit "/>
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
附加信息
小智 5
我有类似的问题。当我未登录时没有样式,www.site.nl\ 重定向到登录页面(带有指向主页的重定向网址)并输入 www.site.nl\Home(与提到的重定向网址相同的主页)之前)不需要登录。
解决方案是:
这对我来说很有效。
祝你好运
| 归档时间: |
|
| 查看次数: |
22327 次 |
| 最近记录: |