你如何审核ASP.NET会员表,同时记录哪个用户做了修改?

 2023-02-16    407  

问题描述

使用基于触发器的审核日志方式,我正在录制对数据库中表所做的更改历史记录.我正在使用的方法(用静态SQL Server登录)来记录哪个用户所做的更改涉及在每个数据库连接的开始时运行存储过程.触发器在录制审核行时使用此用户名. (触发器由产品omniaudit提供.)

但是,ASP.NET隶属表主要通过成员API访问.当成员资格API打开其数据库连接时,我需要通过当前用户的身份.我尝试了Subcassing MembershipProvider,但我无法访问底层的数据库连接.

你如何审核ASP.NET会员表,同时记录哪个用户做了修改?

似乎这将是一个常见的问题.当ASP.NET成员资格使其数据库连接时,有人知道我们可以访问的任何钩子吗?

推荐答案

更新2:
在AOP前面看起来不太好看,我害怕 – 见

并按评论中提到,看起来最好的选择是使用提供者工具包的实现提供商的实现,并将钩子连接到SqlConnectionHelper.GetConnection()

我使用工具包代码,我已经明显清理了,多年来没有任何问题.让我在4.0上确认,如果您有兴趣,请打包它.


更新:

好的,我想我更好地了解你的需要,告诉我我是否正确:

您需要提供者正在使用的实际连接?

sqlmembershipprovider使用辅助类System.Web.DataAccess.SqlConnectionHolder,所有数据访问.

我还没有这样做,但从我收集的那样,你可以使用AOP实现播放来构建这个对象,例如Castle DynamicProxy(或利用它的一个库之一)并在那里得到连接.

有些经验可以确认或否认这个?


原始答案:

无需派生自SQLMembershipProvider.进入并获得所需的东西.

string connectionString =
typeof(SqlMembershipProvider)
.GetField(" _sqlconnectionstring",bindingflags.nonpublic="" |="" bindingflags.instance)="" .getvalue(membership.provider);="">

以上所述是小编给大家介绍的你如何审核ASP.NET会员表,同时记录哪个用户做了修改?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34064.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。