我创建了 MasterPage.aspx 和其他页面。我希望用户点击任何link
上的 MainPage 或button
没有Login
它必须重定向到我的 Login.aspx 。
我怎样才能为此创建session
。我需要创意天气我将在 MasterPage.cs Page_load Method
或其他地方进行编码?。 MasterPage.aspx
{< br /> //代码在这里
}
Login.aspx
{
//代码在这里<}>
答案 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");
}
}
}
希望它对你有所帮助。让我知道是否得到帮助。