200分,贴出你的user类,和users集合类,我想参考一下,谢谢!
最近在做东西,不管什么系统user类肯定是核心。
200分,贴出你的user类,和users集合类,我想参考一下,谢谢!
问题点数:200、回复次数:45Top
1 楼ycc2008(皮皮)回复于 2006-03-19 15:03:23 得分 5
能说明白点吗Top
2 楼Lukiya(路基亚)回复于 2006-03-19 15:21:40 得分 5
我没有自己的……
就用MembershipUser加上Profile混合用。Top
3 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2006-03-19 16:09:11 得分 0
http://www.microsoft.com/china/msdn/library/webservices/asp.net/CustEntCls.mspx?mfr=trueTop
4 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2006-03-19 19:50:47 得分 0
没人?Top
5 楼artak(甜葡萄)回复于 2006-03-19 20:04:48 得分 5
别人做的一个
public class Staff
{
#region 登陆验证
/// <summary>
/// 登陆验证
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <returns>返回用户ID</returns>
public string Login(string userName, string password)
{
string UserID,IsNeedKey;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 25, userName),
data.MakeInParam("@password", SqlDbType.VarChar, 25, password),
data.MakeOutParam("@UserID", SqlDbType.VarChar, 25),
data.MakeOutParam("@IsNeedKey", SqlDbType.Bit, 1)
};
data.RunProc("sp_StaffLogin", prams);
UserID = (string) prams[2].Value;
IsNeedKey = prams[3].Value.ToString();
if (UserID == string.Empty)
return null;
else
return UserID+"-"+IsNeedKey;
}
#endregion
#region 用户退出
/// <summary>
/// 用户退出
/// </summary>
/// <param name="userName">用户名</param>
public void Logout(string userName)
{
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 25, userName)
};
data.RunProc("sp_StaffLogout", prams);
}
#endregion
#region 获取用户基本信息
/// <summary>
/// 获取用户基本信息
/// </summary>
/// <param name="StaffID">用户ID</param>
/// <returns>返回DataReader</returns>
public SqlDataReader GetStaffInfo(long StaffID)
{
SqlDataReader dataReader = null;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@StaffID", SqlDbType.Int, 4, StaffID),
};
try
{
// run the stored procedure
data.RunProc("sp_GetStaffInfo",prams,out dataReader);
return dataReader;
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("人员信息读取出错!",ex);
}
}
#endregion
#region 获取用户基本信息
/// <summary>
/// 获取用户基本信息
/// </summary>
/// <param name="StaffID">用户ID</param>
/// <returns>返回DataReader</returns>
public SqlDataReader GetStaffInfo(string StaffIDs)
{
SqlDataReader dataReader = null;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@StaffIDs", SqlDbType.VarChar, 10000, StaffIDs),
};
try
{
// run the stored procedure
data.RunProc("sp_GetStaffInfoEx",prams,out dataReader);
return dataReader;
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("人员信息读取出错!",ex);
}
}
#endregion
#region 根据用户代号获取用户真实姓名
/// <summary>
/// 获取用户基本信息
/// </summary>
/// <param name="Username">用户代号</param>
/// <returns>返回真实姓名</returns>
public static string GetRealNameByUsername(string Username)
{
SqlDataReader dataReader = null;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@Username", SqlDbType.NVarChar, 30, Username),
};
try
{
// run the stored procedure
data.RunProc("sp_GetRealNameByUsername",prams,out dataReader);
if(dataReader.Read())
{
return dataReader[0].ToString();
}
else
{
return "";
}
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("人员信息读取出错!",ex);
}
finally
{
dataReader.Close();
data.Dispose();
}
}
#endregionTop
6 楼artak(甜葡萄)回复于 2006-03-19 20:05:30 得分 5
#region 根据用户代号字符串返回用户真实姓名字符串
/// <summary>
/// 根据用户代号字符串返回用户真实姓名字符串
/// </summary>
/// <param name="Username">用户代号字符串</param>
/// <param name="Username">返回的个数</param>
/// <returns>返回真实姓名字符串</returns>
public static string GetRealNameStrByUsernameStr(string Username,int number)
{
string RealNameStr = "";
if(Username=="")
return "";
if(Username.EndsWith(","))
Username = Username.Substring(0,Username.Length-1);
string[] UnameAr = System.Text.RegularExpressions.Regex.Split(Username ,",");
if(number==0)
{
number=UnameAr.Length;
}
if(number>UnameAr.Length)
number = UnameAr.Length;
try
{
for(int k=0;k<number;k++)
{
RealNameStr+=GetRealNameByUsername(UnameAr[k].ToString())+",";
}
RealNameStr = RealNameStr.Substring(0,RealNameStr.Length-1);
if(number<UnameAr.Length)
{
RealNameStr+="..";
}
return RealNameStr;
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("根据用户代号字符串返回用户真实姓名字符串出错!",ex);
}
}
#endregion
#region 获取当前职位中的用户信息
/// <summary>
/// 获取当前部门中的用户信息
/// </summary>
/// <param name="Username">用户登陆名</param>
/// <returns>返回DataReader</returns>
public SqlDataReader GetStaffFromPosition(string Username)
{
SqlDataReader dataReader = null;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@StaffName", SqlDbType.NVarChar , 30, Username),
};
try
{
// run the stored procedure
data.RunProc("sp_GetStaffFromPosition",prams,out dataReader);
return dataReader;
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("读取信息出错!",ex);
}
}
/// <summary>
/// 得到该成员职位中的成员信息
/// </summary>
/// <param name="Username">用户名</param>
/// <param name="positionwidth">最低位1表示包含同级成员,最低第二位表示包含下级</param>
/// <param name="postiondepth">下级的深度,最低位1表示直属下级成员,最低第二位1表示直属下级的下级成员</param>
/// <returns></returns>
public SqlDataReader GetStaffFromPosition(string Username,int positionwidth,int postiondepth)
{
SqlDataReader dataReader = null;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@StaffName", SqlDbType.NVarChar , 30, Username),
data.MakeInParam("@Inherit", SqlDbType.Int , 4, postiondepth),
data.MakeInParam("@Upsides", SqlDbType.Int , 4, positionwidth),
};
try
{
// run the stored procedure
data.RunProc("sp_GetStaffFromPosition",prams,out dataReader);
return dataReader;
}
catch (Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("读取信息出错!",ex);
}
}
#endregion
#region 检查用户是否在职位中有相关权力
/// <summary>
/// 检查用户是否在相关权限操作的部门中
/// </summary>
/// <param name="classid">树形图的节点值</param>
/// <param name="username">用户名称</param>
/// <param name="actid">权限造作id</param>
/// <param name="inherit">继承父节点的权限</param>
/// <returns>bool值表示是否有权限</returns>
public bool GetRightInPosition(int classid,string username,int actid,bool inherit)
{
int intInherit;
Database data = new Database();
SqlDataReader dr;
//将参数inherit转换成int以便于存储过程调用
if (inherit)
intInherit = 1;
else
intInherit = 0;
SqlParameter[] prams = {
data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
};
data.RunProc("sp_GetRightInPositionToHandleClass",prams,out dr);
return dr.Read();
}
#endregion
#region 检查用户个人是否在拥有相关权力
/// <summary>
/// 检查用户个人是否在拥有相关权力
/// </summary>
/// <param name="classid">树形图的节点值</param>
/// <param name="username">用户名称</param>
/// <param name="actid">权限造作</param>
/// <param name="inherit">继承父节点的权限</param>
/// <returns>bool值表示是否有权限</returns>
public bool GetRightInPerson(int classid,string username,int actid,bool inherit)
{
int intInherit;
Database data = new Database();
SqlDataReader dr;
//将参数inherit转换成int以便于存储过程调用
if (inherit)
intInherit = 1;
else
intInherit = 0;
SqlParameter[] prams = {
data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
};
data.RunProc("sp_GetRightInPersonToHandleClass",prams,out dr);
return dr.Read();
}
#endregion
#region 检查用户是否在角色中拥有相关权力
/// <summary>
/// 检查用户是否在拥有相关权限操作的角色中
/// </summary>
/// <param name="classid">树形图的节点值</param>
/// <param name="username">用户名称</param>
/// <param name="actid">权限造作</param>
/// <param name="inherit">继承父节点的权限</param>
/// <returns>bool值表示是否有权限</returns>
public bool GetRightInRole(int classid,string username,int actid,bool inherit)
{
int intInherit;
Database data = new Database();
SqlDataReader dr;
//将参数inherit转换成int以便于存储过程调用
if (inherit)
intInherit = 1;
else
intInherit = 0;
SqlParameter[] prams = {
data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
};
data.RunProc("sp_GetRightInRoleToHandleClass",prams,out dr);
return dr.Read();
}
#endregion
#region 检查用户是否在组中拥有相关力
/// <summary>
/// 检查用户是否在组中拥有相关力
/// </summary>
/// <param name="classid">树形图的节点值</param>
/// <param name="username">用户名称</param>
/// <param name="actid">权限造作</param>
/// <param name="inherit">继承父节点的权限</param>
/// <returns>bool值表示是否有权限</returns>
public bool GetRightInTeam(int classid,string username,int actid,bool inherit)
{
int intInherit;
Database data = new Database();
SqlDataReader dr;
//将参数inherit转换成int以便于存储过程调用
if (inherit)
intInherit = 1;
else
intInherit = 0;
SqlParameter[] prams = {
data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
};
data.RunProc("sp_GetRightInTeamToHandleClass",prams,out dr);
return dr.Read();
}
#endregionTop
7 楼niunj(南航牛)回复于 2006-03-19 22:52:55 得分 5
upupupTop
8 楼LGame(JGame)回复于 2006-03-19 23:18:48 得分 5
强@@@@@@Top
9 楼longhorn008(菜鸟.net)回复于 2006-03-20 09:00:35 得分 5
up and markTop
10 楼maip(net)回复于 2006-03-20 09:10:35 得分 5
markTop
11 楼pbwf(书生)回复于 2006-03-20 09:23:48 得分 5
继续顶.Top
12 楼itmingong(nous+wisdom+courage)回复于 2006-03-20 09:38:27 得分 5
markTop
13 楼lubosun(大白菜)回复于 2006-03-20 09:44:51 得分 5
搭车学习~~~~~~~~~~Top
14 楼kingwkb(烂皮鞋)回复于 2006-03-20 09:47:37 得分 5
using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Microsoft.ApplicationBlocks.Data;
namespace FreeWebHost.DataAccess
{
/// <summary>
/// user 的摘要说明。
/// </summary>
public class user
{
private string conStr = System.Configuration.ConfigurationSettings.AppSettings["conStr"];
public user()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 新用户注册
/// </summary>
/// <param name="model"></param>
/// <returns>1注册成功,0注册失败</returns>
public int Add(Model.user model)
{
SqlParameter[] pm = {
new SqlParameter("@username",SqlDbType.VarChar,10),
new SqlParameter("@password",SqlDbType.VarChar,32),
new SqlParameter("@question",SqlDbType.VarChar,50),
new SqlParameter("@answer",SqlDbType.VarChar,50),
new SqlParameter("@truename",SqlDbType.VarChar,10),
new SqlParameter("@statusno",SqlDbType.VarChar,18),
new SqlParameter("@sex",SqlDbType.VarChar,2),
new SqlParameter("@age",SqlDbType.Int,4),
new SqlParameter("@province",SqlDbType.VarChar,20),
new SqlParameter("@address",SqlDbType.VarChar,50),
new SqlParameter("@zip",SqlDbType.Int,4),
new SqlParameter("@tel",SqlDbType.VarChar,15),
new SqlParameter("@email",SqlDbType.VarChar,20),
new SqlParameter("@sitename",SqlDbType.VarChar,20),
new SqlParameter("@sitetype",SqlDbType.Int,4),
new SqlParameter("@intro",SqlDbType.VarChar,300),
new SqlParameter("@space",SqlDbType.Int,4),
new SqlParameter("@regdate",SqlDbType.DateTime,8),
new SqlParameter("@regip",SqlDbType.VarChar,15),
new SqlParameter("@url",SqlDbType.VarChar,50)
};
pm[0].Value = model.username;
pm[1].Value = model.password;
pm[2].Value = model.question;
pm[3].Value = model.answer;
pm[4].Value = model.truename;
pm[5].Value = model.statusno;
pm[6].Value = model.sex;
pm[7].Value = model.age;
pm[8].Value = model.province;
pm[9].Value = model.address;
pm[10].Value = model.zip;
pm[11].Value = model.tel;
pm[12].Value = model.email;
pm[13].Value = model.sitename;
pm[14].Value = model.sitetype;
pm[15].Value = model.intro;
pm[16].Value = model.space;
pm[17].Value = model.regdate;
pm[18].Value = model.regip;
pm[19].Value = model.url;
StringBuilder sql = new StringBuilder();
sql.Append("insert into [user] ");
sql.Append("(username,password,question,answer,");
sql.Append("truename,statusno,sex,age,province,");
sql.Append("address,zip,tel,email,sitename,sitetype,");
sql.Append("intro,[space],regdate,regip,url) ");
sql.Append("values(@username,@password,@question,@answer,@truename,@statusno,");
sql.Append("@sex,@age,@province,@address,@zip,@tel,@email,@sitename,@sitetype,");
sql.Append("@intro,@space,@regdate,@regip,@url)");
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql.ToString(),pm);
}Top
15 楼kingwkb(烂皮鞋)回复于 2006-03-20 09:48:13 得分 5
/// <summary>
/// 用户修改信息
/// </summary>
/// <param name="model"></param>
/// <returns>1修改成功,0修改失败</returns>
public int upDate(Model.user model)
{
SqlParameter[] pm = {
new SqlParameter("@question",SqlDbType.VarChar,50),
new SqlParameter("@answer",SqlDbType.VarChar,50),
new SqlParameter("@truename",SqlDbType.VarChar,10),
new SqlParameter("@sex",SqlDbType.VarChar,2),
new SqlParameter("@age",SqlDbType.Int,4),
new SqlParameter("@province",SqlDbType.VarChar,20),
new SqlParameter("@address",SqlDbType.VarChar,50),
new SqlParameter("@zip",SqlDbType.Int,4),
new SqlParameter("@tel",SqlDbType.VarChar,15),
new SqlParameter("@email",SqlDbType.VarChar,20),
new SqlParameter("@sitename",SqlDbType.VarChar,20),
new SqlParameter("@sitetype",SqlDbType.Int,4),
new SqlParameter("@intro",SqlDbType.VarChar,300),
new SqlParameter("@siteimg",SqlDbType.VarChar,50),
new SqlParameter("@id",SqlDbType.Int,4)
};
pm[0].Value = model.question;
pm[1].Value = model.answer;
pm[2].Value = model.truename;
pm[3].Value = model.sex;
pm[4].Value = model.age;
pm[5].Value = model.province;
pm[6].Value = model.address;
pm[7].Value = model.zip;
pm[8].Value = model.tel;
pm[9].Value = model.email;
pm[10].Value = model.sitename;
pm[11].Value = model.sitetype;
pm[12].Value = model.intro;
pm[13].Value = model.siteimg;
pm[14].Value = model.id;
StringBuilder sql = new StringBuilder();
sql.Append("update [user] set ");
sql.Append("question=@question,answer=@answer,truename=@truename,sex=@sex,age=@age,province=@province,");
sql.Append("address=@address,zip=@zip,tel=@tel,email=@email,sitename=@sitename,sitetype=@sitetype,intro=@intro,siteimg=@siteimg ");
sql.Append("where id=@id");
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql.ToString(),pm);
}
/// <summary>
/// 用户修改密码
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int ModiyPass(Model.user model)
{
string sql = "update [user] set password=@password where id=@id";
SqlParameter[] pm = {
new SqlParameter("@id",SqlDbType.Int,4),
new SqlParameter("@password",SqlDbType.VarChar,32)
};
pm[0].Value = model.id;
pm[1].Value = model.password;
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql,pm);
}
/// <summary>
/// 删除用户
/// </summary>
/// <param name="id">用户ID</param>
/// <returns>1删除成功,0删除失败</returns>
public int Del(int id)
{
SqlParameter pm = new SqlParameter("@id",SqlDbType.Int,4);
pm.Value = id;
string sql = "delete from [user] where id=@id";
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql,pm);
}
/// <summary>
/// 用户登陆自动更新数据库
/// </summary>
/// <param name="model"></param>
/// <returns>1更新成功,0更新失败</returns>
public int upDateLogin(Model.user model)
{
SqlParameter[] pm = {
new SqlParameter("@id",SqlDbType.Int,4),
new SqlParameter("@point",SqlDbType.Int,4),
new SqlParameter("@logindate",SqlDbType.DateTime,8),
new SqlParameter("@loginip",SqlDbType.VarChar,15)
};
pm[0].Value = model.id;
pm[1].Value = 0;
pm[2].Value = model.logindate;
pm[3].Value = model.loginip;
string sql = "update [user] set point=point+@point,logindate=@logindate,logins=logins+1,loginip=@loginip where id=@id";
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql,pm);
}
/// <summary>
/// 用户注册时更新推荐用户积分
/// </summary>
/// <param name="username">推荐用户名</param>
/// <param name="point">增加的积分数</param>
/// <returns>1更新成功,0更新失败</returns>
public int upDateRegPoint(string username,int point)
{
SqlParameter[] pm = {
new SqlParameter("@username",SqlDbType.VarChar,10),
new SqlParameter("@point",SqlDbType.Int,4)
};
string sql = "update [user] set point=point+@point where username=@username";
return SqlHelper.ExecuteNonQuery(conStr,CommandType.Text,sql,pm);
}Top
16 楼kingwkb(烂皮鞋)回复于 2006-03-20 09:48:37 得分 5
/// <summary>
/// 积分换空间
/// </summary>
/// <param name="id">用户ID</param>
/// <param name="point">减去的积分</param>
/// <param name="space">增加的空间大小</param>
/// <returns>1更新数据成功,0更新数据失败</returns>
public int pointToSpace(int id,int point,int space)
{
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlCommand cmd = con.CreateCommand();
SqlTransaction myTrans;
myTrans = con.BeginTransaction();
cmd.Connection = con;
cmd.Transaction = myTrans;
SqlParameter pm1 = new SqlParameter("@id",SqlDbType.Int,4);
SqlParameter pm2 = new SqlParameter("@point",SqlDbType.Int,4);
SqlParameter pm3 = new SqlParameter("@space",SqlDbType.Int,4);
pm1.Value = id;
pm2.Value = point;
pm3.Value = space;
cmd.Parameters.Add(pm1);
cmd.Parameters.Add(pm2);
cmd.Parameters.Add(pm3);
try
{
cmd.CommandText = "update [user] set point = point-@point where id=@id";
cmd.ExecuteNonQuery();
cmd.CommandText = "update [user] set [space] = space+@space where id=@id";
cmd.ExecuteNonQuery();
myTrans.Commit();
return 1;
}
catch
{
myTrans.Rollback();
return 0;
}
finally
{
con.Close();
}
}
/// <summary>
/// 获得全部用户
/// </summary>
/// <returns></returns>
public DataTable GetList()
{
string sql = "select * from [user] order by id desc";
return SqlHelper.ExecuteDataset(conStr,CommandType.Text,sql).Tables[0];
}Top
17 楼lnwuyaowei(风可以追我)回复于 2006-03-20 10:04:22 得分 5
membership + Profile is a very good idea.Top
18 楼ye_zi(行到水穷处·坐看云起时)回复于 2006-03-20 10:37:39 得分 5
微软自带的那两个例子不是很不错吗?Top
19 楼Edisoncat(http://www.Edisonliu.com)回复于 2006-03-20 18:13:29 得分 5
真是各有千秋Top
20 楼zkxp(堕落的卖猪贩)回复于 2006-03-20 19:59:35 得分 5
这个东西有点大啊,既然是参考简化了贴点吧。
==============================BLL层代码============================
using System;
using System.Data;
using System.Web;
using RMB.DAL;
using RMB.Model;
namespace RMB.BLL
{
/// <summary>
/// UserBLL 的摘要说明。
/// </summary>
public class UserBLL
{
public UserBLL(){}
//#region User Register
public void RegUser(MUsers m)
{
UserDAL dal = new UserDAL();
if(dal.FindUser(UserDAL.UserCell.Email,m.Email) != null)
Info.BreakBack("该邮件已经注册");
if(dal.GetModelByName(m.UserName) == null)
dal.Add(m);
else
Info.BreakBack("该用户名已注册");
}
//#endregion
#region Login Action
public void PannelLogin(MUsers m, bool needvcode,string vcode, bool keeplogin, bool gotoindex)
{
string msg = this.DoLogin(m, needvcode, vcode, keeplogin);
if(msg != "loginok")
Info.BreakBack(msg);
if(gotoindex == true)
{
System.Web.HttpContext.Current.Response.Redirect("index.aspx");
}
else
{
string from = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_REFERER"];
if(from == null)
{
System.Web.HttpContext.Current.Response.Redirect("index.aspx");
}
else
{
System.Web.HttpContext.Current.Response.Redirect(from);
}
}
}
public bool CookieLogin()
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["ZKXPUser"];
if(cookie == null)
return false;
if(cookie["UserName"] != null && cookie["UserPwd"] != null)
{
MUsers ae = new MUsers();
ae.UserName = cookie["UserName"];
ae.PassWord = cookie["UserPwd"];
if(DoLogin(ae, false, null, true) == "loginok")
return true;
else
return false;
}
return false;
}
/// <summary>
/// DoLogin
/// 仅返回错误信息,无中断处理,在调用函数中据返回中断处理
/// 登陆成功返回:loginok 反之返回:失败信息
/// </summary>
/// <param name="m">实体</param>
/// <param name="needvcode">是否检查校验码</param>
/// <param name="vcode">校验码</param>
/// <param name="keeplogin">是否保持登陆</param>
public string DoLogin(MUsers m, bool needvcode,string vcode, bool keeplogin)
{
if(needvcode == true && vcode.ToUpper() != Extend.GetSession("UserCheckCode"))
return "验证码错误";
MUsers ae = (new UserDAL()).GetModelByName(m.UserName);
if(ae == null)
return "未找到该用户名";
if(m.PassWord != ae.PassWord)
return "密码错误";
switch(ae.UserState)
{
case 0:
break;
case 1:
return "帐户已冻结";
;
case 2:
return "帐户已被封";
default:
return "帐户状态出错";
}
Extend.SetSession("UserID", ae.UserID.ToString());
Extend.SetSession("UserName", ae.UserName);
Extend.SetSession("UserGroups", ae.UserGroups.ToString());
if(keeplogin == true)
{
HttpCookie cookie = new HttpCookie("ZKXPUser");
cookie.Values["UserName"] = ae.UserName;
cookie.Values["UserPwd"] = ae.PassWord;
cookie.Expires = DateTime.MaxValue;
HttpContext.Current.Response.Cookies.Add(cookie);
}
//更新登陆时间,IP
ae.LastLoginDate = System.DateTime.Now;
ae.LastLoginIP = Extend.GetRealIP();
(new UserBLL()).Update(ae);
return "loginok";
}
#endregion
#region common action
public void Add(MUsers m)
{
(new UserDAL()).Add(m);
}
public void Update(MUsers m)
{
if(!(new UserDAL()).Update(m))
Info.BreakBack("更新失败");
}
public void Delete(int aid)
{
if(!(new UserDAL()).Delete(aid))
Info.BreakBack("更新失败");
}
public DataTable GetDataTable()
{
return (new UserDAL()).GetDataTable();
}
public MUsers GetModel(int aid)
{
return (new UserDAL()).GetModel(aid);
}
#endregion
}
}Top
21 楼zkxp(堕落的卖猪贩)回复于 2006-03-20 20:02:41 得分 5
这个太长了删除了些。
===================================模型层实体代码==================================
// Runtime Version: 1.1.4322.573
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------
// -------------------------------------------------------------
//
// Powered By: SR3.1(SmartRobot For SmartPersistenceLayer 3.1) 听棠
// Created By: zkxp
// Created Time: 2006-3-20 14:42:06
//
// -------------------------------------------------------------
namespace RMB.Model
{
using System;
using System.Collections;
using System.Data;
using PersistenceLayer;
/// <summary>该类的摘要说明</summary>
[Serializable()]
public class MUsers : EntityObject
{
/// <summary>UserID</summary>
public const string __USERID = "UserID";
/// <summary>UserState</summary>
public const string __USERSTATE = "UserState";
/// <summary>LoginTimes</summary>
public const string __LOGINTIMES = "LoginTimes";
/// <summary>Credit</summary>
public const string __CREDIT = "Credit";
/// <summary>JoinDate</summary>
public const string __JOINDATE = "JoinDate";
/// <summary>JoinIP</summary>
public const string __JOINIP = "JoinIP";
/// <summary>ComeFrom</summary>
public const string __COMEFROM = "ComeFrom";
/// <summary>Log_Login</summary>
public const string __LOG_LOGIN = "Log_Login";
/// <summary>LastLoginDate</summary>
public const string __LASTLOGINDATE = "LastLoginDate";
/// <summary>LastLoginIP</summary>
public const string __LASTLOGINIP = "LastLoginIP";
/// <summary>SiteMsg</summary>
public const string __SITEMSG = "SiteMsg";
/// <summary>CreditInComeSum</summary>
public const string __CREDITINCOMESUM = "CreditInComeSum";
/// <summary>InCome_P2C</summary>
public const string __INCOME_P2C = "InCome_P2C";
/// <summary>InCome_P2S</summary>
public const string __INCOME_P2S = "InCome_P2S";
public const string __P2SREGSOK = "P2SRegsOK";
/// <summary>P2SRegsFalse</summary>
public const string __P2SREGSFALSE = "P2SRegsFalse";
/// <summary>GroupChargeLv</summary>
public const string __GROUPCHARGELV = "GroupChargeLv";
/// <summary>PopTimes</summary>
private int m_upLine4;
private System.Single m_CashSum;
private int m_DownLineCount;
private int m_PopTimes;
/// <summary>构造函数</summary>
public MUsers()
{
}
/// <summary>属性UserType </summary>
public int UserType
{
get
{
return this.m_UserType;
}
set
{
this.m_UserType = value;
}
}
/// <summary>属性UserGroups </summary>
/// <summary>属性PayAccount </summary>
public string PayAccount
{
get
{
return this.m_PayAccount;
}
set
{
this.m_PayAccount = value;
}
}
/// <summary>属性LoginTimes </summary>
public short LoginTimes
{
get
{
return this.m_LoginTimes;
}
set
{
this.m_LoginTimes = value;
}
}
//自定义的几个只读 属性
public System.Decimal AccountDownlineTotal
{
get
{
return InCome_DownLine1 + InCome_DownLine2 + InCome_DownLine3 + InCome_DownLine4;
}
}
public System.Decimal AccountAllTotal
{
get
{
return AccountDownlineTotal + InCome_P2C + InCome_P2S + InCome_Other;
}
}
public System.Decimal AccountBalance
{
get
{
return AccountAllTotal - m_PayOutTotal;
}
}
}
/// MUsers执行类
public abstract class MUsersAction
{
private MUsersAction()
{
}
public static void Save(MUsers obj)
{
if (obj!=null)
{
obj.Save();
}
}
/// <summary>根据主键获取一个实体</summary>
public static MUsers RetrieveAMUsers(int UserID)
{
MUsers obj=new MUsers();
obj.UserID=UserID;
obj.Retrieve();
if (obj.IsPersistent)
{
return obj;
}
else
{
return null;
}
}
/// <summary>获取所有实体(EntityContainer)</summary>
public static EntityContainer RetrieveMUsers()
{
RetrieveCriteria rc=new RetrieveCriteria(typeof(MUsers));
return rc.AsEntityContainer();
}
/// <summary>获取所有实体(EntityContainer)</summary>
public static DataTable GetMUsers()
{
RetrieveCriteria rc=new RetrieveCriteria(typeof(MUsers));
return rc.AsDataTable();
}
}Top
22 楼zkxp(堕落的卖猪贩)回复于 2006-03-20 20:02:54 得分 5
==================================DAL层======================================
using System;
using System.Data;
using RMB.Model;
using PersistenceLayer;
namespace RMB.DAL
{
/// <summary>
/// UserDAL 的摘要说明。
/// </summary>
public class UserDAL
{
public void Add(MUsers m)
{
m.Save();
}
public void Login()
{
}
public enum UserCell
{
UserID,
UserName,
Email
}
public MUsers FindUser(UserCell usercell,string cvalue)
{
RetrieveCriteria rc = new RetrieveCriteria(typeof(MUsers));
rc.Top = 1;
Condition c = rc.GetNewCondition();
switch(usercell)
{
case UserCell.UserID:
c.AddEqualTo(MUsers.__USERID, Convert.ToInt32(cvalue));
break;
case UserCell.UserName:
c.AddEqualTo(MUsers.__USERNAME, cvalue);
break;
case UserCell.Email:
c.AddEqualTo(MUsers.__EMAIL, cvalue);
break;
}
EntityObject eo = rc.AsEntity();
if(eo == null)
{
return null;
}
return (MUsers)eo;
}
public MUsers GetModelByName(string name)
{
RetrieveCriteria rc = new RetrieveCriteria(typeof(MUsers));
rc.Top = 1;
Condition c = rc.GetNewCondition();
c.AddEqualTo(MUsers.__USERNAME, name);
EntityObject eo = rc.AsEntity();
if(eo == null)
{
return null;
}
return (MUsers)eo;
}
#region nomal action
public bool Update(MUsers m)
{
MUsers ae = new MUsers();
ae.UserID = m.UserID;
ae.Retrieve();
if(ae.IsPersistent)
{
m.IsPersistent = true;
m.Save();
return true;
}
return false;
}
public bool Delete(int aid)
{
MUsers ae = new MUsers();
ae.UserID = aid;
if(ae.IsPersistent)
{
ae.Delete();
return true;
}
return false;
}
public DataTable GetDataTable()
{
return MUsersAction.GetMUsers();
}
public MUsers GetModel(int aid)
{
return MUsersAction.RetrieveAMUsers(aid);
}
#endregion
}
public struct UserCell
{
public int UserID;
public string UserName;
public string intEmail;
}
}
Top
23 楼dutguoyi(新鲜鱼排)回复于 2006-03-20 20:30:24 得分 5
upTop
24 楼kiven_anlice()回复于 2006-03-20 21:45:20 得分 5
using System;
namespace office_service
{
/// <summary>
/// user 的摘要说明。
/// </summary>
public class user
{
public user()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region user的属性
/// <summary>
/// User的ID
/// </summary>
public int UId
{
get
{
return uId;
}
}private int uId;
/// <summary>
/// user的名字
/// </summary>
public string UName
{
get
{
return uName;
}
set
{
uName=value;
}
}private string uName;
/// <summary>
/// user的密码
/// </summary>
public string UPwd
{
get
{
return uPwd;
}
set
{
uPwd=value;
}
}private string uPwd;
/// <summary>
/// user的权限
/// </summary>
public string UFlag
{
get
{
return uFlag;
}
set
{
uFlag=value;
}
}private string uFlag;
/// <summary>
/// 空闲表
/// </summary>
public string UFree
{
get
{
return uFree;
}
set
{
uFree=value;
}
}private string uFree;
/// <summary>
/// 所属部门
/// </summary>
public string UDepartment
{
get
{
return uDepartment;
}
set
{
uDepartment=value;
}
}private string uDepartment;
/// <summary>
/// 职位
/// </summary>
public string UPosition
{
get
{
return uPosition;
}
set
{
uPosition=value;
}
}private string uPosition;
/// <summary>
/// 是否在职
/// </summary>
public string UIsWork
{
get
{
return uIsWork;
}
set
{
uIsWork=value;
}
}private string uIsWork;
/// <summary>
/// 电话
/// </summary>
public string UPhone
{
get
{
return uPhone;
}
set
{
uPhone=value;
}
}private string uPhone;
/// <summary>
/// Qq
/// </summary>
public string UQq
{
get
{
return uQq;
}
set
{
uQq=value;
}
}private string uQq;
/// <summary>
/// Email
/// </summary>
public string UEmail
{
get
{
return uEmail;
}
set
{
uEmail=value;
}
}private string uEmail;
/// <summary>
/// 住址
/// </summary>
public string UAdress
{
get
{
return uAdress;
}
set
{
uAdress=value;
}
}private string uAdress;
/// <summary>
/// EnterTime
/// </summary>
public string UEnterTime
{
get
{
return uEnterTime;
}
set
{
uEnterTime=value;
}
}private string uEnterTime;
/// <summary>
/// StartTime
/// </summary>
public string UStartTime
{
get
{
return uStartTime;
}
set
{
uStartTime=value;
}
}private string uStartTime;
/// <summary>
/// EndTime
/// </summary>
public string UEndTime
{
get
{
return uEndTime;
}
set
{
uEndTime=value;
}
}private string uEndTime;
//员工图片
public string uPic
{
get{return upic;}set{upic=value;}
}
private string upic;
#endregion
#region user的方法
/// <summary>
/// 添加一个新的用户
/// </summary>
/// <param name="us">添加一个类</param>
/// <returns></returns>
public string AddUser(user us)
{
string rtn;
BaseClass _bc=new BaseClass();
string sql="EXECUTE pAddUser @uName,@uPwd,@uFlag,@uFree,@uDepartment,@uPosition,@uIsWork,@uPhone,@uQq,@uEmail,@uAdress,@uEnterTime,@uStartTime,@uEndTime,@uPic";
//注意,如果是int或其他数值型的属性要用ToString()转换,如下面的this.UFlag.ToString()
rtn=_bc.Execute(sql,"@uName",this.UName,"@uPwd",this.UPwd,"@uFlag",this.UFlag.ToString(),"@uFree",this.UFree.ToString(),"@uDepartment",this.UDepartment,"@uPosition",this.UPosition,"@uIsWork",this.UIsWork.ToString(),"@uPhone",this.UPhone.ToString(),"@uQq",this.UQq.ToString(),"@uEmail",this.UEmail.ToString(),"@uAdress",this.UAdress,"@uEnterTime",this.UEnterTime.ToString(),"@uStartTime",this.UStartTime.ToString(),"@uEndTime",this.UEndTime.ToString(),"@uPic",this.uPic.ToString());
return rtn;
}
/// <summary>
/// 修改用户
/// </summary>
/// <param name="us">添加一个类</param>
/// <param name="userid">要修改用户的id</param>
/// <returns></returns>
public int UpdateUser(user us,string userid)
{
int rtn=0;
BaseClass _bc=new BaseClass();
string sql="EXECUTE pUpdateUser @uId,@uName,@uFlag,@uDepartment,@uPosition,@uIsWork";
//注意,如果是int或其他数值型的属性要用ToString()转换,如下面的this.UFlag.ToString()
rtn=_bc.RunSQL(sql,"@uId",userid.ToString(),"@uName",this.UName,"@uFlag",this.UFlag.ToString(),"@uDepartment",this.UDepartment,"@uPosition",this.UPosition,"@uIsWork",this.UIsWork.ToString());
return rtn;
}
/// <summary>
///
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public int DelUser(string userid)
{
int rtn=0;
BaseClass _bc=new BaseClass();
string sql="EXECUTE pDelUser @uId";
rtn=_bc.RunSQL(sql,"@uId",userid);
return rtn;
}
#endregion
}
}Top
25 楼mazrk(蓝牙科技)回复于 2006-03-20 22:38:23 得分 5
看的头晕..我的工夫还没到家..Top
26 楼levin9(生活就是強姦,習慣啦就是享受)回复于 2006-03-20 23:29:46 得分 5
up,学习啦Top
27 楼nycun(不要错过)回复于 2006-03-20 23:35:15 得分 5
asp.net 2.0里的MembershipUser,ProfileTop
28 楼91bct(Jerry)回复于 2006-03-21 11:46:50 得分 5
upTop
29 楼iuhxq(小灰)回复于 2006-04-01 11:10:52 得分 5
在.net1.1下开发的实在太不幽雅的代码,还是不贴了
不过.net2.0里到是有个不错的解决方案MembershipUser,Profile
在上面直接扩展就行了Top
30 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2006-04-01 14:30:03 得分 5
自从用上了ASP.NET 2.0的Membership,也就没有自己写了。对比Membership,就觉得自己封装的User实在不值得一提,哈哈……所以楼主还是自己看MSDN和用Reflector看Membership的代码吧,想实践就自己写一个MembershipProvider。Top
31 楼silentwins(原谅我当天不懂得珍惜只知任性...)回复于 2006-04-01 15:04:20 得分 4
markTop
32 楼lubosun(大白菜)回复于 2006-04-01 15:42:44 得分 4
还是自己写吧,看着眼晕Top
33 楼xingjibing(星际冰)回复于 2006-04-01 16:34:47 得分 4
长见识了,多多学习Top
34 楼CnEve(龙哥哥)回复于 2006-04-01 16:45:49 得分 4
//偶贴个方法,主要是逻辑
private void Login_Check()
{
string msg = "";
string tUser = Request.Form.Get("txtUserName");
string tPass = Request.Form.Get("txtPassword");
if(tUser=="" || tUser.Length > 32)
{
msg = Inc.IncScript("alert('注意:登陆名不能为空,不能包含非法的字符。');" );
this.RegisterStartupScript("user", msg);
return;
}
if(tPass=="" || tPass.Length > 32)
{
msg = Inc.IncScript("alert('注意:登陆密码不能为空,不能包含非法的字符。');");
this.RegisterStartupScript("pass", msg);
return;
}
//Inc.MessageBox(tUser+" "+tPass, "close");
try
{
//登陆查询
Logic.LoginCheck lgc = new LoginCheck(tUser, tPass);
// 执行存储过程返回登陆结果
string[] uResult = lgc.LoginResult("ep_User_LoginChk");// 存储过程名
if(uResult == null)
{
lgc = null;
msg = "提示:您输入的登陆名不正确,请区分英文大小写。";
Inc.MessageBox(msg, "window.location=location.href");
}
else if(uResult.Length==1)
{
lgc = null;
msg = "提示:您输入的密码不正确,请区分英文大小写。";
Inc.MessageBox(msg, "window.location=location.href");
}
else
{
//登陆验证成功,更新登陆日志。
object[] obj = new object[5]{Convert.ToInt32(uResult[0]), tUser, DateTime.Now, Request.ServerVariables["REMOTE_ADDR"].ToString(), 1};
lgc.UpdateUserLog("ep_eUserLog_Add", obj);// 临时Proc
this.Session["cpid"] = uResult[0];// CPID
this.Session["cpName"] = uResult[1];// UserName
this.Session["cpState"]= uResult[3];// State
uResult = null;
lgc = null;
this.Response.Redirect("Main.aspx", true);
}
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
}
Top
35 楼hokooio(七月)回复于 2006-04-02 23:44:07 得分 4
markTop
36 楼webwait(webwei)回复于 2006-04-02 23:47:48 得分 4
学习Top
37 楼winner2050(找工作中,各位XD收到风,M一下。)回复于 2006-04-03 08:26:59 得分 4
写在点击事件里
private void Button1_Click(object sender, System.EventArgs e)
{
if ( TextBox_UserName.Text.ToString().Trim().Length == 0)
{
CommonClass.MsgBox("用户名不能为空!");
return;
}
if ( TextBox_Password.Text.ToString().Trim().Length == 0)
{
CommonClass.MsgBox("密码不能为空!");
return;
}
if ( txtValidateCode.Text.ToString().Trim().Length == 0)
{
CommonClass.MsgBox("验证不能为空!");
return;
}
string UIstr1 = CommonClass.ReplaceBadChar(TextBox_UserName.Text);
string str2 = CommonClass.Md5hash_String(TextBox_Password.Text);
string[] Newlogin=new string[5];
Newlogin = MyclassDA.Login(MyclassBLL.FormatInputStrForAdmin_Login(UIstr1).ToString());
if (Convert.ToInt32(Newlogin[0] )== 0)
{
CommonClass.MsgBox("用户名根本不存在!");
return;
}
if (Newlogin[2] == str2)
{
if (Session["VNum"]==null)
{
lblShow.Text = "<B>请刷新该页使验证码更新。</B>";
return;
}
if (txtValidateCode.Text != Session["VNum"].ToString())
{
lblShow.Text = "<B>填写的验证码与所给的不符</B>";
return;
}
FormsAuthentication.RedirectFromLoginPage(Newlogin[1],false);
string[] UIStr = new string[3];
UIStr[0] = TextBox_UserName.Text;
UIStr[1] = DateTime.Now.ToString();
UIStr[2] = Request.UserHostAddress;
MyclassDA.Adding_Times(MyclassBLL.FormatInputStrForAdmin_Login_Adding_Time(UIStr));
Session["Logined_UserName"] = Newlogin[1];
Session["Logined_RoleID"]= Newlogin[3];
Session["Logined_Power"]= Newlogin[4];
Session["Logined_RoleName"]= Newlogin[5];
//保存HTML模板
DA_Admin_MakeHTML MyclassDA1=new DA_Admin_MakeHTML();
Application["Show_aspx"]=MyclassDA1.ReaderTemplate("Show_aspx");
Application["Class_aspx"]=MyclassDA1.ReaderTemplate("Class_aspx");
Application["Special_aspx"]=MyclassDA1.ReaderTemplate("Special_aspx");
Application["Header_aspx"]=MyclassDA1.ReaderTemplate("Header_aspx");
Application["Footer_aspx"]=MyclassDA1.ReaderTemplate("Footer_aspx");
Response.Redirect("Admin_Index.aspx");
}
else
{
CommonClass.MsgBox("密码错误!");
return;
}
}Top
38 楼MonkWang(象写情书一样写程序)回复于 2006-04-03 08:57:40 得分 4
收藏
学习
帮顶Top
39 楼v192(人都是環境逼出來的,所以往死裏逼我吧)回复于 2006-04-03 09:14:25 得分 4
代码太长我不贴了,不过上面看到很多人贴的代码,业务代码和数据访问代码全在一个类里面,感觉不是太好。
我的结构是:一个UserBean(业务实体类,数据载体并包含非持久化的业务逻辑),一个IDaoUser接口,一个DaoUserImpl类(实现IDaoUser的Dao数据操作类),一个UserManager类(该类调用UserBean和IDaoUser实现User类的全部功能)。
上面的结构看起来会比较复杂一些,但是有效控制耦合度Top
40 楼bj20082005(asd)回复于 2006-04-03 09:15:59 得分 4
markTop
41 楼cyy1981(McRain)回复于 2006-04-03 09:25:33 得分 4
学习一下Top
42 楼yanlixin4csdn(闫力昕)回复于 2006-04-03 09:34:22 得分 4
你们还真快。我正想把 2.0的membersip 贴上来呢。
Top
43 楼znjgress(四空和尚)回复于 2006-04-04 17:43:27 得分 4
笨狼老大 UPTop
44 楼AllenIverson(Allen)回复于 2006-04-04 17:45:25 得分 4
顶
(以下签名由MyCSDN回复工具生成)
-----------------------------------------------
我不停地大便大便,直到没有一丝力气想你。Top
45 楼swordman123(林风)回复于 2006-04-04 17:48:29 得分 4
友情UPTop



