#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;
}
}