我在视觉工作室建立了一个网站。 一开始一切都很好,我设法在我的所有网页之间导航。 我按照本教程(http://csharpdotnetfreak.blogspot.com/2011/12/createuserwizard-email-verification.html)来创建登录页面。
我设法将验证邮件发送到我的电子邮件地址,但链接从未起作用,我总是收到错误400错误请求。
我的问题是,现在,我无法访问任何网页。它总是带我到login.aspx页面,即使我在web.config文件上设置了一个不同的页面(在身份验证下)。我尝试将其他页面设置为起始页面(通过右键单击项目浏览器)。
每当我尝试打开网页时,我收到错误404,地址栏中的地址更改为localhost49171 / login.aspx?Returnur%2fdefault.aspx%3f
任何人都有解决方案吗?
提前致谢,
Liron
答案 0 :(得分:0)
returnurl表示IIS正在尝试加载default.aspx,但网站安全设置需要登录。所以你被重定向到login.aspx。
答案 1 :(得分:0)
在检查了web.config后,您所期望的行为,只要在登录后您可以导航并访问您网站中的所有页面。如果登录后,您仍然被重定向到登录页面,那么您还有其他设置错误。
web.config中的configuration / web.config / authorization元素用于指定站点范围的授权规则。
<configuration>
<web.config>
<authorization>
<deny users="?" /> <!-- deny un-authenticated access, everyone not logged in that is -->
<allow users="*" /> <!-- allow everyone else -->
</authorization>
</web.config>
</configuration>
如果您拥有可能需要任何人可访问的资源,您可以使用configuration / location / system.web / authorization元素将授权规则修改为该资源
<configuration>
<location path="SomeUnprotectedResource.aspx">
<authorization>
<allow users="*" /> <!-- anyone can view this page -->
</authorization>
</location>
</configuration>
您甚至可能拥有进一步限制对网页的访问权限所需的资源,而不是网站规则所拥有的资源。
<configuration>
<location path="OnlyForMe.aspx">
<authorization>
<allow users="Me" /> <!-- only the user Me can view this page -->
<deny users="*" /> <!-- deny everyone else -->
</authorization>
</location>
</configuration>
作为旁注,如果你有IIS设置来保护所有网站资源(即* .css,*。js)而不仅仅是ASP.NET资源,你需要添加规则以允许访问它们。例如,您可能在登录页面外部使用JavaScript和样式,因此他们可能需要样式和脚本才能工作。
<configuration>
<location path="styles/login.css">
<authorization>
<allow users="*" />
</authorization>
</location>
<location path="scripts/login.js">
<authorization>
<allow users="*" />
</authorization>
</location>
</configuration>