⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userlogic.cs

📁 前台:asp.net;后台: sql server 一个功能完善的BBS系统源码。
💻 CS
字号:
using System;
using Stella.Model;
using Stella.Utility;
using Stella.SQLServerDAL;

namespace Stella.BusinessLogic
{
	/// <summary>
	/// 用户操作
	/// </summary>
	public class UserLogic
	{
		/// <summary>
		/// 构造函数
		/// </summary>
		/// <param name="handler">订阅事件方提供得委托</param>
		/// <remarks>
		/// 接受的委托方法提供使缓存失效的功能
		/// </remarks>
		public UserLogic(DBChangedEventHandler handler)
		{
			DBChanged+=handler;
		}
		
		/// <summary>
		/// 构造函数
		/// </summary>
		public UserLogic()
		{
		}

		/// <summary>
		/// 数据库改变事件
		/// </summary>
		/// <remarks>
		/// 若此事件发布,则说明数据库已经改变,需要重新缓存数据
		/// </remarks>
		public event DBChangedEventHandler DBChanged;


		/// <summary>
		/// 创建新用户
		/// </summary>
		/// <param name="member">待添加的用户</param>		public Member Create(Member member)		{
			UserAccess ua=new UserAccess();
			return ua.Create(member);
		}

		/// <summary>
		/// 更新用户的资料
		/// </summary>
		/// <param name="member">要更新的用户</param>		public void Update(Member member)		{
			UserAccess ua=new UserAccess();
			ua.Update(member);
		}

		/// <summary>
		/// 删除用户
		/// </summary>
		/// <param name="id">该用户的id</param>
		public void Remove(int id)		{
			
			UserAccess ua=new UserAccess();
			ua.Remove(id);
		}

		/// <summary>
		/// 获取用户信息
		/// </summary>
		/// <param name="userName">用户名</param>		public Member GetMemberInfo(string userName)		{
			UserAccess ua=new UserAccess();
			return ua.GetMemberInfo(userName);
		}


		/// <summary>
		/// 获取用户总数
		/// </summary>
		public int GetMemberCount()
		{
			UserAccess ua=new UserAccess();
			return ua.GetMemberCount();
		}

		/// <summary>
		/// 填充用户列表
		/// </summary>
		/// <param name="list">要填充的列表</param>
		/// <param name="pageSize">每页大小</param>
		/// <param name="pageNumber">当前页数</param>
		public void FillMemberList(UserList list,int pageSize,int pageNumber)
		{
			UserAccess ua=new UserAccess();
			ua.FillMemberList(list,pageSize,pageNumber);
		}

		/// <summary>
		/// 填充管理员列表
		/// </summary>
		/// <param name="list">要填充的列表</param>
		public void FillAdminerList(UserList list)
		{
			UserAccess ua=new UserAccess();
			ua.FillAdminerList(list);
		}

		/// <summary>
		/// 填充斑竹列表
		/// </summary>
		/// <param name="list">要填充的列表</param>
		public void FillManagerList(UserList list)
		{
			UserAccess ua=new UserAccess();
			ua.FillManagerList(list);
		}

		/// <summary>
		/// 更新角色
		/// </summary>
		/// <param name="user">填充了新角色的用户</param>
		public void UpdateRole(Member user)
		{
			DebugHelper.CheckCondition(DBChanged!=null,"没有任何类订阅监视数据库改变的DBChanged事件!");
			UserAccess ua=new UserAccess();
			ua.UpdateRole(user);
			DBChanged();
		}

		/// <summary>
		/// 更新密码
		/// </summary>
		/// <param name="member">填充了新密码的用户</param>
		public void UpdatePassWord(Member member)
		{
			UserAccess ua=new UserAccess();
			ua.UpdatePassWord(member);
		}

		
		/// <summary>
		/// 自动给用户生成新密码
		/// </summary>
		/// <param name="member">需要自动生成新密码的用户</param>
		/// <returns>是否成功</returns>
		public bool GetNewPassword(Member member)
		{
			string newPwd=SecurityHelper.MakeLightPassword(ConfigHelper.PasswordText,ConfigHelper.PasswordLength);
			member.Pwd=SecurityHelper.EncryptPassword(newPwd);
			UserAccess ua=new UserAccess();
			string email=ua.UpdatePassWord(member);

			OpenSmtp.Mail.MailMessage mm=new OpenSmtp.Mail.MailMessage("notus@126.com",email);
			mm.Subject=member.Name+": Your STELLA's new password !";
			System.Text.StringBuilder body=new System.Text.StringBuilder();
			body.Append("hello ");
			body.Append(member.Name);
			body.Append("It's your STELLA's new password :<br> <b><font color='#ff6633'>");
			body.Append(newPwd);
			body.Append("</font></b><br>   Please Login again and modifly it .");
			mm.HtmlBody=body.ToString();
			//smtp的设置需要邮箱smtp服务器名,用户名,密码,端口
			//下面是我的126信箱的设置,当然,密码我在发布的时候改成假的了 :)
			//您可以根据此设置您自己的smtp服务器
			OpenSmtp.Mail.Smtp sm=new OpenSmtp.Mail.Smtp("smtp.126.com","notus","xxx",25);
			bool isOk=false;
			try
			{
				sm.SendMail(mm);
				isOk=true;
			}
			catch(Exception ex)
			{
				DebugHelper.CatchException(ex);
			}
			return isOk;
		}

		#region Login

		/// <summary>
		/// 用户登陆
		/// </summary>
		/// <param name="anonym">匿名用户</param>
		/// <returns>登陆用户</returns>
		public Member Login(Guest anonym)
		{
			UserAccess ua=new UserAccess();
			string userName=anonym.Name;
			string password=anonym.Pwd;
			Member user=ua.GetMemberInfo(userName);
			if(user!=null)
			{
				byte[] saltedPwd=SecurityHelper.EncryptPassword(password,SecurityHelper.GetSalt(user.Pwd));
				if(SecurityHelper.CompareByteArray(user.Pwd,saltedPwd))
					return user;
			}
			return null;
		}
		
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -