62,046
社区成员
发帖
与我相关
我的任务
分享
using System;
namespace Newer.Net.Model.Admin
{
/// <summary>
/// 用户业务实体类。
/// </summary>
[Serializable]
public class UserInfo
{
#region 内部成员变量
private int userid;
private string username;
private string password;
private Int16 accountstatus;
private int roleid;
private RoleInfo role;
#endregion
/// <summary>
/// 构造函数
/// </summary>
public UserInfo()
{
}
/// <summary>
/// 获取或设置用户编号
/// </summary>
public int UserID
{
get { return userid; }
set { userid = value; }
}
/// <summary>
/// 获取或设置用户名
/// </summary>
public string UserName
{
get { return username; }
set { username = value; }
}
/// <summary>
/// 获取或设置用户密码
/// </summary>
public string Password
{
get { return password; }
set { password = value; }
}
/// <summary>
/// 获取或设置用户状态
/// </summary>
public Int16 AccountStatus
{
get { return accountstatus; }
set { accountstatus = value; }
}
/// <summary>
/// 获取或设置用户角色
/// </summary>
public int RoleID
{
get { return roleid; }
set { roleid = value; }
}
public RoleInfo Role
{
get { return role; }
set { role = value; }
}
}
}
using System;
using System.Collections.Generic;
using Newer.Net.Common;
using Newer.Net.Common.Enumerations;
using Newer.Net.DataProvider.Admin;
using Newer.Net.Model.Admin;
namespace Newer.Net.BusinessLogic.Admin
{
/// <summary>
/// 用户业务逻辑类
/// 包括基于用户的增、删、改、查等操作。
/// </summary>
public class Users
{
// 实现菜单逻辑的数据提供者
private static readonly UserDataProvider udp = new UserDataProvider();
public Users()
{
}
public static void CreateUpdateDeleteUser(UserInfo user, DataProviderAction action, out DataProviderStatus status)
{
udp.CreateUpdateDeleteUser(user, action, out status);
}
/// <summary>
/// 根据 ID 获取用户实体。
/// </summary>
/// <param name="userID">用户编号</param>
/// <returns>用户对象的实体</returns>
public static UserInfo GetUserById(int userId)
{
return udp.GetUserById(userId);
}
public static List<UserInfo> GetUsersByCondition(string userName, string accountStatus, int pageSize,
int currentPage, out int itemCount)
{
return udp.GetUsersByCondition(userName, accountStatus, pageSize, currentPage, out itemCount);
}
public static UserInfo GetUser(string userName, string password)
{
return udp.GetUser(userName, password);
}
/// <summary>
/// 根据角色ID查询用户表中是否有用户设置了此角色Id
/// </summary>
/// <param name="RoleID"></param>
/// <returns></returns>
public static int RolesCount(string RoleID)
{
return udp.RoleCount(RoleID);
}
}
}
DAL层。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using Newer.Net.Model.Admin;
using Newer.Net.Common.Enumerations;
using Newer.Net.DataFactory;
namespace Newer.Net.DataProvider.Admin
{
/// <summary>
/// 实现用户操作的数据提供者
/// </summary>
public class UserDataProvider
{
public UserDataProvider()
{
}
/// <summary>
/// 提供创建、更新、删除用户的方法
/// </summary>
/// <param name="menu">用户实体对象</param>
/// <param name="action">执行的动作:Create, Update, Delete</param>
/// <param name="status">输出值,执行操作的结果</param>
/// <returns></returns>
public void CreateUpdateDeleteUser(UserInfo user, DataProviderAction action, out DataProviderStatus status)
{
string procname = "demo_Users_CreateUpdateDelete";
List<IDataParameter> parameters = new List<IDataParameter>(8);
IDataParameter p_UserID = DataHelper.GetDataParameter("@UserID", user.UserID);
parameters.Add(p_UserID);
IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", user.UserName);
parameters.Add(p_UserName);
IDataParameter p_Password = DataHelper.GetDataParameter("@Password", user.Password);
parameters.Add(p_Password);
IDataParameter p_AccountStatus = DataHelper.GetDataParameter("@AccountStatus", user.AccountStatus);
parameters.Add(p_AccountStatus);
IDataParameter p_RoleID = DataHelper.GetDataParameter("@RoleID", user.RoleID);
parameters.Add(p_RoleID);
IDataParameter p_Action = DataHelper.GetDataParameter("@Action", (int)action);
parameters.Add(p_Action);
status = (DataProviderStatus)Convert.ToInt32(DataHelper.ExecuteScalar(procname, parameters));
}
/// <summary>
/// 将数据对象(IDataReader)转换为带有角色对象的用户实体对象。
/// </summary>
/// <param name="dr">数据对象(IDataReader)</param>
/// <returns>返回值:用户实体对象</returns>
public UserInfo PopulateUserAndRoleFromIDataReader(IDataReader dr)
{
RoleDataProvider rdp = new RoleDataProvider();
UserInfo user = PopulateUserFromIDataReader(dr);
user.Role = rdp.PopulateRoleFromIDataReader(dr);
return user;
}
/// <summary>
/// 将数据对象(IDataReader)转换为用户实体对象。
/// </summary>
/// <param name="dr">数据对象(IDataReader)</param>
/// <returns>返回值:用户实体对象</returns>
private UserInfo PopulateUserFromIDataReader(IDataReader dr)
{
UserInfo user = new UserInfo();
user.UserID = Convert.ToInt32(dr["userid"]);
user.UserName = Convert.ToString(dr["username"]);
user.Password = Convert.ToString(dr["password"]);
user.AccountStatus = Convert.ToInt16(dr["accountstatus"]);
user.RoleID = Convert.ToInt32(dr["roleid"]);
return user;
}
/// <summary>
/// 通过指定用户编号,获取用户实体对象
/// </summary>
/// <param name="userId">用户编号</param>
/// <returns>返回用户实体对象</returns>
public UserInfo GetUserById(int userId)
{
UserInfo user = null;
string procname = "demo_User_Get";
List<IDataParameter> parameters = new List<IDataParameter>(1);
IDataParameter p_UserID = DataHelper.GetDataParameter("@UserID", userId);
parameters.Add(p_UserID);
IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
if (dr != null)
{
while (dr.Read())
{
user = PopulateUserFromIDataReader(dr);
}
dr.Close();
}
return user;
}
/// <summary>
/// 根据查询条件和分页条件,返回符合条件的用户实体对象集合
/// </summary>
/// <param name="menuName">用户名称</param>
/// <param name="description">帐户状态</param>
/// <param name="pageSize">分页大小</param>
/// <param name="currentPage">当前页面的索引</param>
/// <param name="itemCount">输出值,分页总数</param>
/// <returns>返回分页后的用户实体对象集合</returns>
public List<UserInfo> GetUsersByCondition(string userName, string accountStatus, int pageSize, int currentPage, out int itemCount)
{
List<UserInfo> userSet = new List<UserInfo>();
string procname = "demo_Users_FindUsers";
List<IDataParameter> parameters = new List<IDataParameter>(5);
IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", userName);
parameters.Add(p_UserName);
IDataParameter p_AccountStatus = DataHelper.GetDataParameter("@AccountStatus", accountStatus);
parameters.Add(p_AccountStatus);
IDataParameter p_PageSize = DataHelper.GetDataParameter("@PageSize", pageSize);
parameters.Add(p_PageSize);
IDataParameter p_currentPage = DataHelper.GetDataParameter("@CurrentPage", currentPage);
parameters.Add(p_currentPage);
IDataParameter p_ItemCount = DataHelper.GetDataParameter("@ItemCount", DbType.Int32);
p_ItemCount.Direction = ParameterDirection.Output;
parameters.Add(p_ItemCount);
IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
if (dr != null)
{
while (dr.Read())
{
userSet.Add(PopulateUserAndRoleFromIDataReader(dr));
}
dr.Close();
}
if (p_ItemCount != null && p_ItemCount.Value.GetType() != typeof(System.DBNull))
{
itemCount = (int)p_ItemCount.Value;
}
else
{
itemCount = 0;
}
return userSet;
}
/// <summary>
/// 通过用户名和密码,查找用户。
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <returns>返回找到的用户</returns>
public UserInfo GetUser(string userName, string password)
{
UserInfo user = null;
string procname = "demo_User_Login";
List<IDataParameter> parameters = new List<IDataParameter>(2);
IDataParameter p_UserName = DataHelper.GetDataParameter("@UserName", userName);
parameters.Add(p_UserName);
IDataParameter p_Password = DataHelper.GetDataParameter("@Password", password);
parameters.Add(p_Password);
IDataReader dr = DataHelper.ExecuteReader(procname, parameters);
if (dr != null)
{
while (dr.Read())
{
user = PopulateUserFromIDataReader(dr);
}
dr.Close();
}
return user;
}
/// <summary>
/// 根据角色ID查询用户表中是否有用户设置了此角色Id
/// </summary>
/// <param name="RoleID"></param>
/// <returns></returns>
public int RoleCount(string RoleID)
{
string sql = " select count(*) from tab_Users where roleID in(" + RoleID + ")";
DataSet ds = DataHelper.ExecuteDataSet(sql);
if (ds.Tables[0].Rows.Count>0)
{
return (int)ds.Tables[0].Rows[0][0];
}
return 0;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Web.Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>系统登录</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align:center">
<table cellspacing="0" cellpadding="0" width="350px" border="0" style="margin-top: 80px">
<tr>
<td>
<asp:Image ID="imgTop" runat="server" ImageUrl="images/login_1.jpg" Height="29" Width="350" /></td>
</tr>
<tr>
<td>
<asp:Image ID="imgTitle" runat="server" ImageUrl="images/login_2.jpg" Height="89" Width="350" /></td>
</tr>
<tr>
<td style="background:url(images/login_3.gif);height:132px;">
<table width="95%" border="0" style="text-align:left;">
<tr>
<td valign="middle" align="right" style="width:34%">
<asp:Label ID="labUserName" runat="server" Text="用户名:"></asp:Label> </td>
<td>
<asp:TextBox ID="txtUserName" runat="server" CssClass="logininput"></asp:TextBox>
<asp:RequiredFieldValidator ID="valUserNamevalUserName" runat="server" ControlToValidate="txtUserName"
ErrorMessage="*"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td valign="middle" align="right">
<asp:Label ID="labPassword" runat="server" Text="密码:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtPassword" runat="server" CssClass="logininput" TextMode="password"></asp:TextBox><asp:RequiredFieldValidator
ID="valPassword" runat="server" ControlToValidate="txtPassword" ErrorMessage="*"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="height:35px">
</td>
<td>
<asp:Button ID="btnLogin" runat="server" Text="登 录" OnClick="btnLogin_Click">
</asp:Button>
<asp:Button ID="btnReset" runat="server" Text="重 置" CausesValidation="False"
onclick="btnReset_Click">
</asp:Button><br />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newer.Net.BusinessLogic.Admin;
using Newer.Net.Model.Admin;
namespace Web
{
public partial class Login : Newer.Net.Common.PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
Session.Clear();
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string userKey = txtUserName.Text;
string userName = Convert.ToString(HttpContext.Current.Cache[userKey]);
if (string.IsNullOrEmpty(userName))
{
UserInfo user = Users.GetUser(txtUserName.Text, txtPassword.Text);
if (user != null) //判断用户是否存在,存在则登录成功,否则登录失败。
{
Session["User"] = user;
//TimeSpan sessionTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//HttpContext.Current.Cache.Add(userKey, userKey, null, DateTime.MaxValue,
// sessionTimeOut, CacheItemPriority.Default, null);
Response.Redirect("Default.aspx");
}
else
{
base.Alert("用户名或密码错误!");
}
}
else
{
throw new ApplicationException("此用户已登录!");
}
}
protected void btnReset_Click(object sender, EventArgs e)
{
txtPassword.Text = "";
txtUserName.Text = "";
}
}
}