您要打印的文件是:asp.net中的身份验证

asp.net中的身份验证

作者:onlytiancai    转贴自:CSDN    点击数:2702


我用的是基于窗体的验证,这也是最常用的,我只写一下摘要,源代码太长,但应该不影响理解代码.

web.config的修改:
<authentication  mode=Forms  />  
用户的登陆验证方法,:
这里有两个输入控件的,一个是user_tb,用来输入用户,一个是psw_tb,用来输入密码
private  void  Button1_Click(object  sender,  System.EventArgs  e)
{
//用户登陆验证
string  ip=  System.Web.HttpContext.Current.Request.UserHostAddress  ;  
string  user_name=user_tb.Text;
string  user_psw=psw_tb.Text;
user_name=user_name.Replace(<,<).Replace(>,>).Replace(  ,  ).Replace(',‘);
user_psw=user_psw.Replace(<,<).Replace(>,>).Replace(  ,  ).Replace(',‘);
if(user_name!=||user_psw!=)
{
SqlConnection  myconn=new  SqlConnection((string)ConfigurationSettings.AppSettings[connstring]);//连接数据库
myconn.Open();//打开
string  validate_Sql=select  *  from  Web_User  where  User_Name='+user_name+'and  User_Psw='+user_psw+';
SqlCommand  validate_com=new  SqlCommand(validate_Sql,myconn);
SqlDataReader  validate=validate_com.ExecuteReader();
string  temp=;
while(validate.Read())
{
Session[user_name]=user_name;
Session[user_flag]=validate[User_Flag].ToString();
temp=yes;
}
validate.Close();
if(temp==yes)
{
user_tb.Text=;
psw_tb.Text=;
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(user_name,false);
Response.Redirect(manage_index.aspx);

}
else
{
Response.Write(<script>alert('您的用户名或密码错误!');</script>);  
return  ;
}
user_tb.Text=;
psw_tb.Text=;
myconn.Close();
}

}
判断用户是否已经登陆:
private  void  Page_Load(object  sender,  System.EventArgs  e)
{  
//在这里判断用户是否已经登陆
if(!System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
Response.Write(<script>alert('您没有登陆!');history.back()</script>);    
}
string  strUsername;
strUsername=System.Web.HttpContext.Current.User.Identity.Name+<br>+System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
lbIUsername.Text=strUsername;
//  在此处放置用户代码以初始化页面
}
用户的退出:
private  void  LinkButton1_Click(object  sender,  System.EventArgs  e)
{  //退出
Session[user_name]=null;
Session[user_flag]=null;
Session.Clear();
System.Web.Security.FormsAuthentication.SignOut();
Response.Redirect(default.aspx);
}