Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 网页编程 / ASP.NET / ASP.NET安全问题--Forms验证(后篇)--实战篇

ASP.NET安全问题--Forms验证(后篇)--实战篇2011-02-21 Cnblogs 小洋今天话题如下:

验证流程讲述

数据库准备

代码编写

验证流程讲述

我们首先假设一个场景:用户现在已经打开了我们的首页Default.aspx,但是有些资源只能是登录用户才可以看到的,那么如果这个用户想要查看这些资源,那么他就要登录。而且这个用户已经有了一个帐号。(我们本篇主要的话题是身份验证,至于创建用户账户是怎么创建的,我们不关心,方法很多,如直接一个数据库插入就行了!)

我们现在就把我们的一些流程说下:

1.用户登录,在输入框中输入用户名和密码信息

2.点击登录按钮后,到数据库中查询该用户是否存在

3 如果存在,服务器端代码就创建一个身份验证的票据,保存在cookie中,然后发送到客户端的浏览器

4.用户已经有了验证的cookie,那么就页面就跳转到用户之前请求的页面

数据库准备

那么下面我们就开始详细讲述:

首先,我们我们肯定要先得创建一个数据库,我们就取名为Login表,创建一个用户信息表,我们在在表中建立三个字段UserName,UserPassword,UserRole(大家可以创建更多字段,我这里只是演示,大家可以扩展的). 至于表中的数据,大家自己随便插入几条!

代码编写

因为我们常常要验证用户,所以我们把验证用户的代码写成一个方法放在App_Code目录下的Helpers.cs类中

代码如下:

验证代码

public static bool ValidateUser(string username, string password)
{

SqlConnection con = new SqlConnection();
con.ConnectionString =
ConfigurationManager.ConnectionStrings[“MyConnectionString”].ConnectionString;

SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = “Select Count(*) From Users Where Username=@Username and UserPassword=@Password”;

com.Parameters.AddWithValue(“@Username”, username);
com.Parameters.AddWithValue(“@Password”, password);
con.Open();

int cnt = (int)com.ExecuteScalar();
con.Close();

return (cnt > 0);
}