日期:2014-05-18  浏览次数:20511 次

关于FormsAuthentication(窗体身份验证机制)的问题,求教大家,急
我做一个教务管理系统,教师登录时过程如下:

先用TextBoxId存储用户名,然后在数据库中验证用户名和密码,验证成功后:
//登录成功-导航页面
Session["UserNo"] = TextBoxId.Text;
if (!Roles.IsUserInRole(TextBoxId.Text, "教师"))
  Roles.AddUserToRole(TextBoxId.Text, "教师");
FormsAuthenticationTicket ticket
  = new FormsAuthenticationTicket(3, TextBoxId.Text, DateTime.Now,
  DateTime.Now.AddMinutes(2), false, "course");//添加票证
string encTicket = FormsAuthentication.Encrypt(ticket);// 加密票证
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));//创建票证Cookie
Response.Redirect("登录成功页面.aspx");

这段代码是照抄类似程序然后修改的,可以运行,但有2个问题不懂,请教大家:
1.在FormsAuthenticationTicket ticket
  = new FormsAuthenticationTicket(3, TextBoxId.Text, DateTime.Now,
  DateTime.Now.AddMinutes(2), false, "course");//添加票证
  语句中,最后一个参数"course"是干什么用的?是不是得改成其他的?

2.以后这个用户想注销登录,该怎么实现呢?如果方法是把这个票证取消,怎么写呢?

------解决方案--------------------
我也弄了个sf ?

1、存储在票证中的用户特定的数据。
2、两个方法,试试。
FormsAuthentication.SignOut(); 
Response.Cookies.Remove(FormsAuthentication.FormsCookieName);