b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

通用权限管理系统源码(权限管理系统 开源)

hacker2022-06-12 12:35:22昨日新闻69
本文目录一览:1、如何在通用权限管理系统中集成log4net日志功能

本文目录一览:

如何在通用权限管理系统中集成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的例子也看看,如何集成在一起等。

高分求权限管理类的源代码与实例!^_^

游戏点卡系统

实现了权限管理、展示不同用户登陆后拥有不同的菜单项,可以对新角色分配新权限,加入了角色这一感念!实现了一对多的拥有权限!

发表评论

评论列表

  • 鸽吻苍阶(2022-06-12 20:02:59)回复取消回复

    用,ASP.NET应用程序的设置与安全、程序设计实例等。本专辑由大学计算机专业老师一边讲解一边演示(老师讲解是小录象,演示是大录象),非常适合asp.net初学者用来学习asp.n

  • 澄萌倥絔(2022-06-12 19:20:19)回复取消回复

    if (this.m_dbConnection != null) { this.m_dbConnection.Close();

  • 只影棕眸(2022-06-12 22:49:07)回复取消回复

    初学者用来学习asp.net编程北大青鸟软件工程师PPT及其源代码。很适合自学者或是不想到青鸟培训又想自学的同胞们。。本套PPT价廉物美。如何学习吉日嘎拉的走火入魔c#net通用权限管理

  • 性许猫卆(2022-06-12 14:27:52)回复取消回复

    is.ErrorHandler.Error("Could not create database command [" + this.m_commandText + "]", exception);