1、MD5加密
对字符串进行MD5加密,该方法在Common文件夹的Common类中
public static string CreateMd5(string str)
{
MD5 md5 = MD5.Create();
...
}
单元测试验证加密算法:在方法上右击,创建单元测试
2、登录窗体
(1)在member文件夹中新建用户控件,复制用户登录.txt。用户控件:放常用的元素,可以在aspx中访问。
模板页与用户控件?
(2)在登录窗体中写binLogin_Click事件,在其中调用BLLc层的CheckLogin方法,登录成功则将用户信息存到Session中,并跳转到首页。在跳转之前加一个判断,即用户登录成功后可能手动输入地址
if(!string.IsNullOrEmpty(Request.QueryString["url"]))
{
Response.Redirect(Request.QueryString["url"]);
}
else
{
//跳转到首页
}
(3)在BLL层UserManager类中添加CheckLogin方法进行登录校验
public bool CheckLogin(string txtName,string txtPwd,out string msg,out Model.User model)
{
model = dal.GetModel(txtName);
if(model != null)
{
if(model.UserState.Name == "正常")
{
if(model.LoginPwd == txtPass)
{
msg = "登录成功";
return true;
}
else
{
msg = "用户名密码错误";
return false;
}
}
else
{
msg = "用户被锁定";
return false;
}
}
else
{
msg = "用户不存在";
return false;
}
}
(4)在Common类中增加记录访问页的url的方法GotoPage()(有什么用?)
public static void GotoPage()
{
HttpContext.Current.Response.Redirect("/member/Login.aspx?url="+HttpContext.Current.Request.Url.ToString());
}
3、“记住我”功能 (将用户名、密码放在Cookie中,可以让用户n天内免登录)
(1)以下代码在登录窗体btnLogin_Click事件中,登录成功用户信息存入Session后。
if(this.cbAutoLogin.Checked)//checkbox被选中
{
HttpCookie userName = new HttpCookie("cp1",model.LoginId);
HttpCookie userPwd = new HttpCookie("cp2",Enctry(model.LoginPwd));
//TODO:有效期
//TODO:Add添加cookie
}
添加Enctry对密码进行加密
在cookie中存储pwd时用MD5加密,而且不能只用MD5。我们用如下方法:
P表示密码,S表示随机两位字母,
我们写入cookie的加密后密码为:S+MD5(S+MD5(P))
(2)在登录页面的Load方法中,首先判断cookie中是否存在用户名密码,如有且和数据库中相等,则不用登录。直接跳转到用户请求页面或主页,同时不要忘了给Session赋值,将登录的用户信息放入Session。
贱招:
在我们判断数据库中的密码和cookie中的密码是否一致时,可以将cookie中的S(即前两位)截取,与数据库中的P进行S+MD5(S+MD5(P))运算,判断其值与cookie中是否一致。
4、图书列表数据的绑定
建MasterPage.Master模板页 BookList.aspx,实现模板
用Repeater控件绑定数据。
if(!IsPostBack)
{
BindRepeater();
}
5、数据排序
(1)按价格排序