即使没有返回URL,表单身份验证也会附加返回URL

时间:2011-07-19 05:13:25

标签: c# asp.net forms-authentication

我在Web应用程序中使用表单身份验证。我在配置文件中有这个。我使用IIS 7

<forms loginUrl="~/Account/Login.aspx" cookieless="UseCookies" protection="All" 
       name=".ASPXAUTH" timeout="60" requireSSL="false" slidingExpiration="true"  
   enableCrossAppRedirects="false" defaultUrl="~/Dashboard.aspx" />

当我在地址栏中输入我的网站的网址时,它会将我重定向到

Account/Login.aspx?ReturnUrl=%2f代替Account/Login.aspx

我不知道原因是什么,但是当我使用IIS 5.1时,一切正常。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

表单身份验证重定向将源URL作为参数放入login.aspx请求中,以便将用户返回到他们输入的页面。 %2f = /,例如您网站的根目录。如果您输入了www.example.com/coolstuff.aspx,则ReturnUrl参数将为'%2fcoolstuff.aspx'。

没有错,这就是表单身份验证的工作方式。

答案 1 :(得分:1)

一种选择是将URL隐藏在浏览器地址栏中:

<script>
    if (history.replaceState) {
        history.replaceState({}, document.title, '//' + location.host + location.pathname);
    }
</script>