#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
|
{
|
/// <summary>
|
/// 系统内部用户授权
|
/// </summary>
|
public class LoginSystemAuth : ILoginAuthorization
|
{
|
/// <summary>
|
/// 登录
|
/// </summary>
|
/// <param name="loginUser">录入的用户登录资料</param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 登出
|
/// </summary>
|
public void Logout()
|
{
|
try
|
{
|
var user = BridgeFactory.CreateUserBridge();
|
user.Logout(new LoginUser(Loginer.CurrentUser));
|
}
|
catch
|
{
|
LogUserOperate.Write("登录发生错误!");
|
}
|
}
|
|
public bool SupportLogout => true;
|
}
|
}
|