1. 问题有点大,你还是先看看相关例子和资料吧:
Explained: Forms Authentication in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ff647070.aspx2. User.Identity.Name 就是当前登录的用户名。
Explained: Forms Authentication in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ff647070.aspx2. User.Identity.Name 就是当前登录的用户名。
解决方案 »
- 求教!在为C#窗体添加背景音乐时不报错,但没声音
- 请教一个用httpwebrequest关于登陆有验证码的网站。
- textbox的Validating事件,当弹出错误时,点击关闭按钮还是显示报错信息
- 结构体指针的问题,寻求高手
- 关于listview中记录被替换的问题 在线等。。。
- DataGridVie编辑
- 怎样用DirectX sdk捕获音频并播放
- 关于SMTP自动寄信服务的问题
- 怎么用线程池啊?
- installshield 8+.net制作安装文件后安装的问题(.net1.1)
- button控件visible设为false后仍然可见
- Response.Redirect 跳转如何在Header中添加Authorization
if(bLoginSuccess)
{
Session['uid'] = this.txtUid.Text;
}
else
{
Session['uid'] = String.Empty;
}///////////////////////////////////////if(String.IsNullOrEmpty(Session['uid'].ToString()))
{
// Redirect to Login Page;
}
session 是一个相当有用的东东
if (Session["User_id"].ToString() == null)
{
Response.Redirect("login.aspx");
}
提示:並未將物件參考設定為物件的執行個體。
登陸頁麵這麼寫的:
if (Convert.ToInt32(cmd.ExecuteScalar()) > 0)
{
Response.Redirect("default.aspx");
Session["User_id"] = tbx_username.Text.Trim().ToString(); }
else
{
Label1.Text="用户名或密码不正确,请重新输入!";
tbx_username.Text="";
tbx_password.Text="";
if (Convert.ToInt32(cmd.ExecuteScalar()) > 0)
{
Response.Redirect("default.aspx");
sqlcon.Close();
Session["User_id"] = tbx_username.Text.Trim().ToString(); }
else
{
Label1.Text="用户名或密码不正确,请重新输入!";
tbx_username.Text="";
tbx_password.Text="";
Session["User_id"] = String.Empty; }
}
重载OnLoad方法,
在里面检查SESSION是否过期,新建一个CheckLogin方法
如果过期,表示没登录,跳转到Login页面
如果没过期,将Session转为实体对象备用。
然后项目内需要登录访问的页面全都继承BasePage public class BasePage : System.Web.UI.Page
{
public DAL.Employee SessionUser = new DAL.Employee();
public DAL.Dept SessionDept = new DAL.Dept();
protected override void OnLoad(EventArgs e)
{ if(!CheckLogin())
{
Response.Redirect("/Login.aspx",true);
}
base.OnLoad(e);
}
private bool CheckLogin()
{
bool blnTemp = false;
if (Session["User"] != null && Session["Dept"] != null)
{
blnTemp = true;
SessionUser = Session["User"] as DAL.Employee;
SessionDept = Session["Dept"] as DAL.Dept;
}
return blnTemp;
}
}
这是一种常用方法。说不稳定可能是因为它经常超时。如果建议不要用,为什么还会有大规模分布式SESSION服务器的解决方案。