实体
public class UserModel
{
public string UserName { set; get; }
public string UserPassword { set; get; }
}
DAL
public bool UserValidate(UserModel entity)
{
bool isPass = false;
string sqlText = "select count(*) from ContactUser where UserName=@u and UserPassword=@p";
int t = 0;
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlCommand cmd = new SqlCommand(sqlText, conn);
DaoHelper.AddParameter(cmd, "@u", entity.UserName);
DaoHelper.AddParameter(cmd, "@p", entity.UserPassword);
conn.Open();
t = (int)cmd.ExecuteScalar();
}
if (t > 0)
{
isPass = true;
}
return isPass;
}
页面
var dal = new UserDAL();
var model = new UserModel();
string u = txtUserName.Text;
model.UserName = txtUserName.Text;
model.UserPassword = txtUserPassword.Text;
if (dal.UserValidate(model))
{
FormsAuthentication.SetAuthCookie(u, false);
//Response.Write("认证通过");
Response.Redirect("/index.aspx");
}
else
{
throw new Exception("用户名密码错误");
}
继承控制访问
需验证页继承此类
在回发数据已加载到页服务器控件之后但在 OnLoad 事件之前,引发 PreLoad 事件。
重载PreLoad
protected override void OnPreLoad(EventArgs e)
{
base.OnPreLoad(e);
LoginGuard();
}
private bool _CheckLogin = true;
//是否验证默认为True
public bool CheckLogin
{
get { return _CheckLogin; }
set { _CheckLogin = value; }
//已经验证通过或不必要验证则pass
protected virtual void LoginGuard()
{
if (!User.Identity.IsAuthenticated && CheckLogin)
Response.Redirect("/Login.aspx");
}
登入页不必验证则
public Login()
{
CheckLogin = false;
}