在地址栏中写入URL后,阻止未经授权的用户重定向到页面

时间:2011-11-18 04:51:52

标签: asp.net c#-2.0

每当用户点击退出按钮时,他被重定向到登录页面,然后他不能通过单击后退按钮返回....但如果他知道任何页面的网址甚至是未经授权的页面。他能够访问该页面。我需要做的是通过输入urls..Plz help

来访问任何页面

4 个答案:

答案 0 :(得分:1)

您需要使用Form authentication配置您的网络应用。其他选择是使用Session或Cookies。

答案 1 :(得分:0)

您可以在登录页面放置一个会话变量,仅在用户通过登录页面访问任何页面时插入一些值。如果值不匹配,请检查每个页面加载中的会话值是否再次重定向到登录页面。

答案 2 :(得分:0)

使用page_load中的会话变量:

protected void Page_Load(object sender, EventArgs e)
{
    Session["loggedin"] = "false";
}

...并检查登录事件。如果用户按下了登录按钮,则将会话变量设置为“true”。

protected void btnOK_Click(object sender, EventArgs e)
{
    Session["loggedin"] = "true";
    ......
   ......
}

当页面重定向到另一个页面时,请检查会话变量的状态 在页面加载事件中。

    try
    {

        if (Session["loggedin"].ToString() == "false")
        {
            Response.Write("<script> alert('Session Expires! please login first'); </script>");

            Response.Redirect("login.aspx");
            return;
        }

    }
    catch (Exception er)
    {
        Response.Redirect("login.aspx");
    }

答案 3 :(得分:0)

先生,请在Web.config

中写下代码
<system.web>
    <authentication mode="Forms">
       <forms loginUrl="Login.aspx"
             protection="All"
             timeout="30"
             name=".ASPXAUTH"
             path="/"
             requireSSL="false"
             slidingExpiration="true"
             defaultUrl="default.aspx"
             cookieless="UseDeviceProfile"
             enableCrossAppRedirects="false" />
     </authentication>

     <authorization>
             <deny users="?" />
     </authorization>
</system.web>

此代码将阻止在不登录的情况下在地址栏中输入网址。