通用权限管理系统源码(权限管理系统 开源)
本文目录一览:
- 1、如何在通用权限管理系统中集成log4net日志功能
- 2、C# ASP.NET B/S版本 通用软件管理系统快速开发架构源码
- 3、如何学习吉日嘎拉的走火入魔c#net通用权限管理系统组件源码
- 4、高分求权限管理类的源代码与实例!^_^
如何在通用权限管理系统中集成log4net日志功能
首先在官网下载最新源码,目前的源码可用VS2010打开。
源码中已经实现了可以日志输出到MSSQL的功能,但我的项目目前使用的都是Oracle数据库,源码中是没有实现的,需要自己实现一下:
public class OracleAppender : BufferingAppenderSkeleton
{
// Fields
private static readonly Type declaringType = typeof(AdoNetAppender);
private string m_commandText;
private CommandType m_commandType = CommandType.Text;
private string m_connectionString;
private string m_connectionType;
private OracleCommand m_dbCommand;
private OracleConnection m_dbConnection;
protected ArrayList m_parameters = new ArrayList();
private bool m_reconnectOnError = false;
private SecurityContext m_securityContext;
protected bool m_usePreparedCommand;
private bool m_useTransactions = true;
// Methods
public override void ActivateOptions()
{
base.ActivateOptions();
this.m_usePreparedCommand = (this.m_commandText != null) (this.m_commandText.Length 0);
if (this.m_securityContext == null)
{
this.m_securityContext = SecurityContextProvider.DefaultProvider.CreateSecurityContext(this);
}
this.InitializeDatabaseConnection();
this.InitializeDatabaseCommand();
}
public void AddParameter(OracleAppenderParameter parameter)
{
this.m_parameters.Add(parameter);
}
protected virtual string GetLogStatement(LoggingEvent logEvent)
{
if (this.Layout == null)
{
this.ErrorHandler.Error("ADOAppender: No Layout specified.");
return "";
}
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
this.Layout.Format(writer, logEvent);
return writer.ToString();
}
private void InitializeDatabaseCommand()
{
if ((this.m_dbConnection != null) this.m_usePreparedCommand)
{
try
{
this.m_dbCommand = this.m_dbConnection.CreateCommand();
this.m_dbCommand.CommandText = this.m_commandText;
this.m_dbCommand.CommandType = this.m_commandType;
}
catch (Exception exception)
{
this.ErrorHandler.Error("Could not create database command [" + this.m_commandText + "]", exception);
if (this.m_dbCommand != null)
{
try
{
this.m_dbCommand.Dispose();
}
catch
{
}
this.m_dbCommand = null;
}
}
if (this.m_dbCommand != null)
{
try
{
foreach (OracleAppenderParameter parameter in this.m_parameters)
{
try
{
parameter.Prepare(this.m_dbCommand);
}
catch (Exception exception2)
{
this.ErrorHandler.Error("Could not add database command parameter [" + parameter.ParameterName + "]", exception2);
throw;
}
}
}
catch
{
try
{
this.m_dbCommand.Dispose();
}
catch
{
}
this.m_dbCommand = null;
}
}
if (this.m_dbCommand != null)
{
try
{
this.m_dbCommand.Prepare();
}
catch (Exception exception3)
{
this.ErrorHandler.Error("Could not prepare database command [" + this.m_commandText + "]", exception3);
try
{
this.m_dbCommand.Dispose();
}
catch
{
}
this.m_dbCommand = null;
}
}
}
}
private void InitializeDatabaseConnection()
{
try
{
this.m_dbConnection = new OracleConnection();
this.m_dbConnection.ConnectionString = this.m_connectionString;
using (this.SecurityContext.Impersonate(this))
{
this.m_dbConnection.Open();
}
}
catch (Exception exception)
{
this.ErrorHandler.Error("Could not open database connection [" + this.m_connectionString + "]", exception);
this.m_dbConnection = null;
}
}
protected override void OnClose()
{
base.OnClose();
if (this.m_dbCommand != null)
{
this.m_dbCommand.Dispose();
this.m_dbCommand = null;
}
if (this.m_dbConnection != null)
{
this.m_dbConnection.Close();
this.m_dbConnection = null;
}
}
protected virtual Type ResolveConnectionType()
{
Type type;
try
{
type = SystemInfo.GetTypeFromString(this.m_connectionType, true, false);
}
catch (Exception exception)
{
this.ErrorHandler.Error("Failed to load connection type [" + this.m_connectionType + "]", exception);
throw;
}
return type;
}
protected override void SendBuffer(LoggingEvent[] events)
{
if (this.m_reconnectOnError ((this.m_dbConnection == null) || (this.m_dbConnection.State != ConnectionState.Open)))
{
LogLog.Debug(declaringType, "OracleAppender: Attempting to reconnect to database. Current Connection State: " + ((this.m_dbConnection == null) ? "null" : this.m_dbConnection.State.ToString()));
this.InitializeDatabaseConnection();
this.InitializeDatabaseCommand();
}
if ((this.m_dbConnection != null) (this.m_dbConnection.State == ConnectionState.Open))
{
if (this.m_useTransactions)
{
OracleTransaction dbTran = null;
try
{
dbTran = this.m_dbConnection.BeginTransaction();
this.SendBuffer(dbTran, events);
dbTran.Commit();
}
catch (Exception exception)
{
if (dbTran != null)
{
try
{
dbTran.Rollback();
}
catch (Exception)
{
}
}
this.ErrorHandler.Error("Exception while writing to database", exception);
}
}
else
{
this.SendBuffer(null, events);
}
}
}
C# ASP.NET B/S版本 通用软件管理系统快速开发架构源码
北大青鸟ACCP5.0全套PPT资料项目视频教材25G 和专业项目(首发)
北大青鸟ACCP5.0全套视频
北大青鸟ASP.NET视频教程全集(包括实验)(32集),本专辑系统的讲解
了asp.net编程的各个方面,包括了ASP.NET的基础知识,ASP.NET和IIS
架构,HTML语言,C#,Vb.NET基础,HTML控件和Web服务器控件,Web表单
验证控件,在C#VB.NET中使用ASP.NET对象,数据库基础与ADO.NET、数
据库编程,高级应用,ASP.NET应用程序的设置与安全、程序设计实例
等。本专辑由大学计算机专业老师一边讲解一边演示(老师讲解是小录
象,演示是大录象),非常适合asp.net初学者用来学习asp.net编程
北大青鸟软件工程师PPT及其源代码。很适合自学者或是不想到青鸟培
训又想自学的同胞们。。本套PPT价廉物美。
如何学习吉日嘎拉的走火入魔c#net通用权限管理系统组件源码
0:视频仔细看看
1:你先把数据库挂上。
2:你把程序配置运行起来。
3:核对操作手册,看看整体功能。
4:看数据库设计。
5:看分层写法。
6:学会用数据库访问层。
7:学会用代码生成器。
8:学会WCF,Remoting等运行模式。
9:Web的例子也看看,如何集成在一起等。
高分求权限管理类的源代码与实例!^_^
游戏点卡系统
实现了权限管理、展示不同用户登陆后拥有不同的菜单项,可以对新角色分配新权限,加入了角色这一感念!实现了一对多的拥有权限!