📄 userlogic.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 + -