ASP.NET Session&母版页

时间:2014-05-31 07:19:34

标签: c# asp.net

我创建了 MasterPage.aspx 和其他页面。我希望用户点击任何link上的 MainPage button没有Login它必须重定向到我的 Login.aspx
我怎样才能为此创建session。我需要创意天气我将在 MasterPage.cs Page_load Method或其他地方进行编码?。 MasterPage.aspx
{< br /> //代码在这里
}
Login.aspx

{
//代码在这里<}>

4 个答案:

答案 0 :(得分:0)

在母版页上使用这样的条件:

if (Session["LoggedUserName"] == null && !Request.Path.EndsWith("login.aspx"))
    {
        Response.Redirect("~/your/path/login.aspx");
    } 

您还可以使用:MembershipProvider

这可以在这里看到:

Check Session variable and Redirect to login page before page load

答案 1 :(得分:0)

您可以轻松地将代码放在MasterPage的Page_load事件中:

if(Session["Login"] == null)
{
   Response.Redirect("/Login.aspx");
}

更新:

如果您对所有页面使用MasterPage,则自动单击所有锚点会导致检查会话,但如果您没有使用MasterPage,我认为您可以执行此解决方案:

首先,创建一个这样的类:

public class MyPage : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        if(Session["User"] == null) 
                {
                      Response.Redirect("/login.aspx");
                }
    }
}

之后,在创建页面时,从MyPage类继承它们,例如:

public class Default: MyPage

答案 2 :(得分:0)

在登录页面中使用此代码

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
                if (txtuser.Text == "User" && txtPassword.Text == "Password")
                {
                    Session["username"] = txtuser.Text;
                    Response.Redirect("Default.aspx");
                }
                else
                {
                    lblMessage.Text = "Invalid Username/Password";
                }
        }

在母版页中,在加载事件中使用此代码

        if(Session["username"]==null)
            Response.Redirect("Login.aspx",false);

答案 3 :(得分:0)

在MasterPage.aspx.cs中尝试以下代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (Session["UserId"] == null)
        {
            Response.Redirect("Login.aspx");
        }
    }
}

希望它对你有所帮助。让我知道是否得到帮助。