⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 security.cs

📁 DocFlow展示了使用.NET开发平台结合Microsoft SQL Server数据库和Microsoft Indexing Service索引服务同样也能创建功能强大的文档管理门户。 Do
💻 CS
字号:
/* 
*  Copyright (c) 2002 FulcrumWeb. All rights reserved.
*/

using System;
using System.Data;
using System.Data.OleDb;
using System.Collections;

namespace Bip.Components
{
	public class UserRoles
	{
		public static string Administrator = "A";
		public static string SystemOperator = "S";
		public static string Operator = "O";
		public static string Reader = "R";

		protected static string[] m_UserRoles = {Administrator, SystemOperator, Operator, Reader};
		protected static string[] m_UserRoleNames = {"StrRoleNameAdministrator", 
													 "StrRoleNameSystemOperator", 
													 "StrRoleNameOperator",
													 "StrRoleNameReader"};

		public static DataTable GetRoleTable()
		{
			DataTable roles = new DataTable();
			roles.Columns.Add("Id");
			roles.Columns.Add("Name");
			for(int i=0; i< m_UserRoles.Length; i++)
				roles.Rows.Add( new string[]{m_UserRoles[i], BipResources.GetString(m_UserRoleNames[i])});
			return roles;
		}

		public static string GetRoleName(string role)
		{
			for(int i=0; i< m_UserRoles.Length; i++)
				if(m_UserRoles[i] == role)
					return BipResources.GetString(m_UserRoleNames[i]);
			return BipResources.GetString(m_UserRoleNames[m_UserRoleNames.Length-1]);
		}

		public static bool HasRole(string role1, string role2)
		{
			int iRole1=0, iRole2=0;
			for(; iRole1< m_UserRoles.Length; iRole1++)
				if(m_UserRoles[iRole1] == role1)
					break;
			for(; iRole2< m_UserRoles.Length; iRole2++)
				if(m_UserRoles[iRole2] == role2)
					break;

			return iRole1 <= iRole2;
		}

		public static string[] HasRoles(string role)
		{
			int iRole=0;
			for(; iRole< m_UserRoles.Length; iRole++)
				if(m_UserRoles[iRole] == role)
					break;
			
			if(iRole == m_UserRoles.Length)
				throw new BipAccessDeniedException();

			string[] allRoles = new string[m_UserRoles.Length - iRole];

			int cur = iRole;
			for(; iRole <m_UserRoles.Length; iRole++)
				allRoles[iRole - cur] = m_UserRoles[iRole];

			return allRoles;
		}

		public static bool UserHasRole(string role)
		{
			return HasRole(UserIdentity.Current.UserRole, role);
		}

		public static void PermitRole(string role)
		{
			if(!HasRole(UserIdentity.Current.UserRole, role))
				throw new BipAccessDeniedException();
		}

	}


	/// <summary>
	/// Summary description for Security.
	/// </summary>
	public class UserIdentity
	{
		int m_UserId;
		string m_UserRole;

		public int UserId
		{
			get{return m_UserId;}
		}
		public string UserRole
		{
			get{return m_UserRole;}
		}
		
		public static void Reset()
		{
			System.Web.HttpContext.Current.Items.Remove("bipuser");
		}

		public static UserIdentity Current
		{
			get
			{
				object obj = System.Web.HttpContext.Current.Items["bipuser"];
				if(obj== null)
					return null;
				return (UserIdentity) obj;
			}
		}

		public UserIdentity(int userId, string userRole)
		{
			m_UserId = userId;
			m_UserRole = userRole;
		}
	}
/*	
	class BipUserAuthorization
	{
		public static void PermitRole(string role)
		{
			if(!BipUserRoles.HasRole(BipUserIdentity.Current.UserRole, role))
				throw new BipAccessDeniedException();
		}

		public static void PermitCurrentUser(int userId)
		{
			if(BipUserIdentity.Current.UserId != userId)
				throw new BipAccessDeniedException();
		}

	}
*/
	public class GroupEnt : SimpleDictionary
	{
		protected static string  DbTableName = "Groups";
		protected override string GetDbTableName()
		{
			return DbTableName;
		}
		public static DataTable FindAll()
		{
			return FindAllEntries(DbTableName);
		}

		public static DataTable FindEnum(IEnumerable ids)
		{
			return FindEnumEntries(DbTableName, ids);
		}

		public static DataTable FindUsers(int groupId)
		{
			Database db = new Database();
			OleDbCommand cmd = db.Connection.CreateCommand();
			string commandText = @"select * from users inner join usergroups on id=UserId 
								where GroupId=" + groupId.ToString() + " order by login";
			OleDbDataAdapter adapter = new OleDbDataAdapter(commandText, db.Connection);
			DataTable table= new DataTable();
			adapter.Fill(table);
			db.Dispose();
			return table;		
		}

		protected static string GetEntityName(int id)
		{
			return GetEntityName(DbTableName, id);
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -