#region using System; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Core.SystemSecurity; using CSFrameworkV5.DataAccess; using CSFrameworkV5.Models; #endregion ///*************************************************************************/ ///* ///* 文件名 :LoginAuthorization.cs /// ///* 程序说明 : 系统登录策略 /// 1.系统内部用户授权 2.Novell网用户授权 3.Windows域用户授权 /// ///* 原创作者 :www.csframework.com ///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利. ///* ///**************************************************************************/ namespace CSFrameworkV5.Business.BLL_Permission { /// /// 系统内部用户授权 /// public class LoginSystemAuth : ILoginAuthorization { /// /// 登录 /// /// 录入的用户登录资料 /// public bool Login(LoginUser loginUser) { //调用数据访问层的接口检查用户登录 //用户登录前尚未创建Loginer对象,所有传null值 var bridge = BridgeFactory.CreateUserBridge(); var dt = bridge.Login(loginUser); if (dt == null || dt.Rows.Count == 0) throw new CustomException("登录失败,请检查用户名和密码!"); var row = dt.Rows[0]; //用户实例,登录成功 var user = new Loginer(); user.Account = ConvertEx.ToString(row[tb_MyUser.Account]); user.Password = ConvertEx.ToString(row[tb_MyUser.Password]); user.AccountName = ConvertEx.ToString(row[tb_MyUser.UserName]); user.FlagAdmin = ConvertEx.ToString(row[tb_MyUser.FlagAdmin]); user.DatasetIDs = ConvertEx.ToString(row[tb_MyUser.DataSets]); user.LoginTime = DateTime.Now; user.IP = loginUser.IP; user.MAC = loginUser.MAC; user.DBID = loginUser.DBID; user.DBName = loginUser.DBName; user.Org1 = ConvertEx.ToString(row[tb_MyUser.Org1]); user.Org2 = ConvertEx.ToString(row[tb_MyUser.Org2]); Loginer.CurrentUser = user; //保存当前用户 //登录成功保存当前授权模式 SystemAuthentication.Current = this; //获取当前用户的账套信息 if (BridgeFactory.IsADODirect) DatabaseProvider.LoadDatabase(Loginer.CurrentUser.DatasetIDs); return true; } /// /// 登出 /// public void Logout() { try { var user = BridgeFactory.CreateUserBridge(); user.Logout(new LoginUser(Loginer.CurrentUser)); } catch { LogUserOperate.Write("登录发生错误!"); } } public bool SupportLogout => true; } }