?? cuser.cs.svn-base
字號:
using System;
using System.Data;
using System.Collections;
using System.Data.OracleClient;
using DataMiddleware;
using System.Windows.Forms;
using SchedulerManage.DataFactroy;
namespace BackgroudManager
{
/// <summary>
/// 用戶相關(guān)信息
/// Author:wxl
/// Date: 2007-04-06
/// </summary>
public class CUser
{
private static string strRoleName = string.Empty;
/// <summary>
/// 設(shè)置、獲取角色名稱
/// Author:wxl
/// Date: 2007-04-10
/// </summary>
public static string RoleName
{
get
{
return strRoleName;
}
set
{
if(strRoleName !=value)
{
strRoleName = value;
}
}
}
private static string m_DeptName = string.Empty;
/// <summary>
/// 部門名稱
/// </summary>
public static string DeptName
{
get
{
return m_DeptName;
}
}
private static string m_FiliationDept = string.Empty;
/// <summary>
/// 分支部門編號
/// </summary>
public static string FiliationDept
{
get
{
return m_FiliationDept;
}
}
private static string m_FiliationDeptName = string.Empty;
/// <summary>
/// 分支部門編號
/// </summary>
public static string FiliationDeptName
{
get
{
return m_FiliationDeptName;
}
}
private static string m_CardID = string.Empty;
/// <summary>
/// 磁卡編號
/// </summary>
public static string CardID
{
get
{
return m_CardID;
}
}
private static string m_WorktypePath = string.Empty;
/// <summary>
/// 作業(yè)路徑
/// </summary>
public static string WorkTypePath
{
get { return m_WorktypePath; }
}
#region 身份驗(yàn)證 CheckUser()
/// <summary>
/// 身份驗(yàn)證
/// </summary>
/// <param name="userName">用戶名稱</param>
/// <param name="Password">用戶密碼</param>
public static bool CheckUser(TextBox txtUserName, TextBox txtPassword)
{
bool isCheck = false;
object obj = string.Empty;
if (txtUserName.Text.Trim() == "" && txtPassword.Text.Trim() == "")
{
MessageBox.Show("用戶名或密碼不能為空");
SetTextBox(txtUserName); //設(shè)置TextBox
isCheck = false;
}
else if(txtUserName.Text.Trim() == "admin" && txtPassword.Text.Trim() == System.DateTime.Now.Date.ToString("yyyyMMdd"))
{
isCheck = true;//維護(hù)人員專用
}
else
{
IDataAccess DB = null;
try
{
DB = StaticAccess.GetAccess();
DB.Open();
string sql = "SELECT s_Password FROM P$SYS_USER_DICT WHERE s_UserName='" + txtUserName.Text + "'";
obj = DB.ExecuteScalar(sql);
if (obj == null)
{
MessageBox.Show("用戶名不存在!");
SetTextBox(txtUserName); //設(shè)置TextBox
isCheck = false;
}
if (obj != null && obj.ToString().Trim() != txtPassword.Text.Trim().ToString())
{
MessageBox.Show("密碼錯誤!");
SetTextBox(txtPassword);
isCheck = false;
}
else
{
if(txtUserName.Text.Trim().Length !=0 && txtUserName.Text.Trim() !="" && obj != null) //如果用戶名不為空
{
isCheck = true;
}
}
}
catch
{
}
finally
{
DB.Close();
}
}
return isCheck;
}
/// <summary>
/// 設(shè)置TextBox
/// </summary>
/// <param name="textBox"></param>
private static void SetTextBox(TextBox textBox)
{
textBox.SelectAll();
textBox.Focus();
}
#endregion
#region 獲取用戶ID GetUserID
/// <summary>
/// 獲取用戶ID(職工編號)
/// </summary>
/// <param name="userName">用戶名稱</param>
/// <returns>用戶ID編號</returns>
public static string GetUserID(string userName)
{
string result = "";
IDataAccess DB = null;
try
{
DB = StaticAccess.GetAccess();
DB.Open();
string strSql = "SELECT s_StuffCode FROM P$SYS_USER_DICT WHERE s_UserName='" + userName + "'";
object obj = DB.ExecuteScalar(strSql);
if (obj != null)
{
result = obj.ToString();
}
}
catch
{
throw new Exception("獲取用戶信息出錯!請重試!");
}
finally
{
DB.Close();
}
return result;
}
#endregion
#region 獲取角色編號 GetActorCode
/// <summary>
/// 獲取某個用戶所具有的角色Code,與用戶表關(guān)聯(lián)獲取得出角色Code
/// Modify Date: 2007-04-10
/// </summary>
/// <param name="userName">用戶名稱</param>
/// <returns>角色編號</returns>
public static string GetActorCode(string userName)
{
string strRoleID = "";
IDataAccess DB = null;
DataTable dt = null;
try
{
DB = StaticAccess.GetAccess();
DB.Open();
string strSql = "SELECT c_RoleCode,S_ROLENAME, B.S_workroute FROM P$SYS_ROLE_DICT A INNER JOIN " +
"P$SYS_USER_DICT B ON trim(B.s_Role) = trim(A.c_RoleCode) WHERE s_UserName='" + userName + "'";
dt = DB.GetDataTableBySQL(strSql);
if(dt !=null)
{
foreach(DataRow row in dt.Rows)
{
strRoleID = row["c_RoleCode"].ToString();
strRoleName=row["S_ROLENAME"].ToString(); //將調(diào)度員添加到屬性實(shí)體
m_WorktypePath = row["S_workroute"].ToString();
}
}
#region Comment
//object obj = DB.ExecuteScalar(strSql);
//
//actors = obj.ToString();
// //判斷是否為空
//if (actors.Length == 0)
//{
// actors = "''";
//}
#endregion
}
catch(Exception ex)
{
throw ex;
}
finally
{
DB.Close();
}
return strRoleID;
}
#endregion
#region 獲取模塊編號列表及各個模塊具有的相關(guān)權(quán)限
private static Hashtable _hashTable = new Hashtable();
/// <summary>
/// 定義一個HashTable,存儲模塊名稱與模塊權(quán)限
/// </summary>
public static Hashtable hashTable
{
get
{
return _hashTable;
}
}
/// <summary>
/// 根據(jù)角色獲取分配的模塊列表
/// </summary>
/// <param name="roleCode">角色編號</param>
/// <returns>模塊編號列表</returns>
public static string GetModuleCode(string roleCode)
{
string moduleCode = "";
IDataAccess DB = null;
DataTable dt = null;
try
{
DB = StaticAccess.GetAccess();
DB.Open();
string strSql = "select * from P$SYS_ROLE_GRANT_DICT where C_Rolecode ='" + roleCode + "'";
dt = DB.GetDataTableBySQL(strSql);
if (dt != null)
{
foreach (DataRow row in dt.Rows)
{
string code = row["c_ModuleCode"].ToString();
string permCode = row["c_PermCode"].ToString(); //權(quán)限編號
string opr = PermOperator(permCode); //獲取模塊的操作權(quán)限,因?yàn)? if (moduleCode.Length == 0)
{
moduleCode = code;
}
else
{
moduleCode += "," + code;
}
string strName = GetModuleNames(code); //選擇單個模塊名稱
_hashTable.Add(strName, opr); //將各個模塊的操作權(quán)限裝到HasTable中
}
}
}
catch
{
}
finally
{
DB.Close();
}
return moduleCode;
}
/// <summary>
/// 獲取具體模塊所具有的操作權(quán)限,如增、刪、改、查
/// </summary>
/// <param name="moduleCode">模塊編號</param>
/// <returns>操作名稱</returns>
private static string PermOperator(string moduleCode)
{
string canOperator = "";
IDataAccess DB = null;
try
{
DB = StaticAccess.GetAccess();
DB.Open();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -