在开发及实际中 会是这样,登录后自动返回请求的URL
由于所有页面都继承父页面,可以在父页面中得到url,登录以后转向原请求页面。
判断是否登录的父类
using System;
namespace bchataspx.entity
{
/// <summary>
/// AdminPager 的摘要说明。
/// </summary>
public class AdminPager : StockManagerPager
{
protected User u = null;
public AdminPager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
protected override void OnLoad(EventArgs e)
{
//http://127.0.0.1/bchataspx/manager/Sac/SacDataImport.aspx
/*pointStart*/
string actionUrl = Request.RawUrl.ToString();//得到当前url
actionUrl = Server.UrlEncode(Request.RawUrl.ToString());//对url进行编码
/*pointEnd*/
if(Request.Cookies["userId"]==null||Request.Cookies["userId"].Value.ToString().Trim()=="")
{
if(actionUrl!="")
Response.Redirect("/bchataspx/admin/LoginMenu.aspx?ReturnUrl="+actionUrl);
else
Response.Redirect("/bchataspx/admin/LoginMenu.aspx");
}
else
{
int uid = int.Parse(Request.Cookies["userId"].Value.Trim());
u = new User(uid);
base.OnLoad(e);
}
}
}
}
登录按钮事件也做相应调整
登录按钮事件
private void btnSub_Click(object sender, System.EventArgs e)
{
if(txtUserPwd.Text==""||txtUserName.Text=="")
{
Utils.MessageBox("用户名或密码不能为空!");
return;
}
string name = txtUserName.Text.Trim().Replace("'","");
string pwd = txtUserPwd.Text.Trim().Replace("'","");
string uid = ValidateLogin(name,pwd);
if(int.Parse(uid)>0)
{
//entity.User u = new User(uid);
HttpCookie cookie = new HttpCookie("userId",uid);//由于cookie只能保持string类型,uid也改成string类型
Response.Cookies.Add(cookie);
/*pointStart*/
string ReturnUrl = Utils.GetQueryString("ReturnUrl");//得到获取的url参数
if(ReturnUrl!="")
Response.Redirect(ReturnUrl);//当参数不为空转向url地址
/*pointEnd*/
else
Response.Redirect("Page.aspx");
}
else
{
Utils.MessageBox("用户名或密码不正确!",this);
}
}