然后实现这个接口:类DBHelper,代码见附件
其中类的构造函数中指定使用的数据库服务器名及用户名和密码。
当然,也要提供 SqlHelper.cs类,附下载地址
接下来就是实现BLL,业务逻辑层的Login,代码如下:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;
namespace BLL
{
/// <summary>
/// 业务逻辑类 Login
/// </summary>
public class Login
{
private readonly SqlServerDAL.Login dal = new SqlServerDAL.Login();
public Login()
{ }
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Model.Login model)
{
dal.Add(model);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Model.Login model)
{
dal.Update(model);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(int id)
{
dal.Delete(id);
}
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string username)
{
return dal.Exists(username);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Model.Login GetModel(string username)
{
return dal.GetModel(username);
}
/// <summary>
/// 获得泛型数据列表
/// </summary>
public List<Model.Login> GetList(out long count)
{
return dal.GetList(out count);
}
}
}
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;
namespace BLL
{
/// <summary>
/// 业务逻辑类 Login
/// </summary>
public class Login
{
private readonly SqlServerDAL.Login dal = new SqlServerDAL.Login();
public Login()
{ }
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Model.Login model)
{
dal.Add(model);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Model.Login model)
{
dal.Update(model);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(int id)
{
dal.Delete(id);
}
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string username)
{
return dal.Exists(username);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Model.Login GetModel(string username)
{
return dal.GetModel(username);
}
/// <summary>
/// 获得泛型数据列表
/// </summary>
public List<Model.Login> GetList(out long count)
{
return dal.GetList(out count);
}
}
}
下面就该实现website里面的登录模块了。
这里使用Cookie来存储用户信息,
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// UserCookies 的摘要说明
/// </summary>
public class UserCookies
{
public const string cksUserName = "COOKIES_1_1";
public UserCookies()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void SetCookies(string name, string Value)
{
System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie(name, Value));
}
public void SetCookies(Model.Login user)
{
SetCookies(cksUserName, user.username);
}
public string GetCookies(string name)
{
if (System.Web.HttpContext.Current.Request.Cookies[name] == null)
return "";
if (System.Web.HttpContext.Current.Request.Cookies[name].Value == null || System.Web.HttpContext.Current.Request.Cookies[name].Value == "")
return "";
return System.Web.HttpContext.Current.Request.Cookies[name].Value;
}
public void ClearUserCookies()
{
SetCookies(cksUserName, "");
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// UserCookies 的摘要说明
/// </summary>
public class UserCookies
{
public const string cksUserName = "COOKIES_1_1";
public UserCookies()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void SetCookies(string name, string Value)
{
System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie(name, Value));
}
public void SetCookies(Model.Login user)
{
SetCookies(cksUserName, user.username);
}
public string GetCookies(string name)
{
if (System.Web.HttpContext.Current.Request.Cookies[name] == null)
return "";
if (System.Web.HttpContext.Current.Request.Cookies[name].Value == null || System.Web.HttpContext.Current.Request.Cookies[name].Value == "")
return "";
return System.Web.HttpContext.Current.Request.Cookies[name].Value;
}
public void ClearUserCookies()
{
SetCookies(cksUserName, "");
}
}
用来设置和清空cookie, 然后通过cookie来判断用户是否为合法用户。
public bool CheckUserLogin()
{
UserCookies cookies = new UserCookies();
string username = cookies.GetCookies(UserCookies.cksUserName);
if (string.IsNullOrEmpty(username))
{
return false;
}
return true;
}
{
UserCookies cookies = new UserCookies();
string username = cookies.GetCookies(UserCookies.cksUserName);
if (string.IsNullOrEmpty(username))
{
return false;
}
return true;
}
今天大致上讲了整个项目的实现技术和项目的需求,以及简单的介绍了如何用三层架构实现登录模块,虽然没有具体的实现,但是思路已经讲了,具体的代码会在后续文章中提供,希望多多支持。有什么不清楚的可以留言或者发邮件告诉我。