小编xes*_*shu的帖子

使用sql server在Web应用程序中审计跟踪

我们正在使用asp.net和sql server开发一个Web应用程序.我们需要为应用程序执行审计跟踪.据我了解,审计跟踪基本上适用于数据库中的所有插入,更新和删除吗?现在解决这个问题的方法是,我在DB中有一个审计跟踪表,在每次插入,更新或删除之后填充(在DAL中手动编写脚本).但是,不会记录从SQL Management Studio直接触发的任何数据库更改(原因很明显:P).

为了迎合这一点,我可以创建一个触发器,并处理所有事情.我也做了一些谷歌搜索,发现SQL服务器有能力进行审计跟踪.但是,使用触发器的问题是我不会获得登录网站的用户信息.我会得到sql用户,但我没有给出两个hoots,我担心网站用户.

我想出的解决方案是a)从我的Web应用程序中获得审计跟踪并设置触发器.在审计报告中,我只是显示来自Web应用程序的审计日志和来自sql server的审计日志.这种方法明显存在问题:头脑清醒.在每个DB CHANGE上写入两组不同的表.

b)我有一个名为UserId ON EVERY DB TABLE的列.然后我创建一个触发器来捕获所有数据库更改.我在我更改的每个表(插入,更新,删除)上传递此userId,并从触发器获取此id.显而易见的挫折:每个表中不必要的用户ID列

我为长篇文章道歉.基本上我需要一个审计日志,它记录所有数据库更改(包括直接破解到数据库),但同时给我用户登录信息,用于从Web应用程序进行的那些数据库更改.

将欣赏这方面的任何意见.

非常感谢

xeshu

sql-server asp.net audit-trail

16
推荐指数
1
解决办法
9699
查看次数

关闭SqlConnection和SqlCommand c#

在我的DAL中,我写这样的查询:

using(SQLConnection conn = "connection string here")
{
    SQLCommand cmd = new ("sql query", conn);
    // execute it blah blah
}
Run Code Online (Sandbox Code Playgroud)

现在我发现我没有明确关闭SQLCommand对象.现在我知道'using'块将处理SQLConnection对象,但是这还会处理SQLCommand对象吗?如果不是我有一个严重的问题.我必须在SQLCommand上使用'使用'成千上万行代码,或者在数百种方法上执行cmd.Close().请告诉我,如果使用或关闭命令将提供更好的Web应用程序内存管理?

c# ado.net garbage-collection using-statement

14
推荐指数
3
解决办法
5738
查看次数

在SQLDataReader上使用

我知道我之前提过了一个相关的问题.我只是想到了另一个想法.

using (SqlConnection conn = new SqlConnection('blah blah'))
{
    using(SqlCommand cmd = new SqlCommand(sqlStatement, conn))
    {
        conn.open();

        // *** do I need to put this in using as well? ***
        SqlDataReader dr = cmd.ExecuteReader() 
        {
            While(dr.Read())
            {
                //read here
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

参数是:由于SqlDataReader dr对象不是一个新的对象,如连接或命令对象,它只是一个指向cmd.ExecuteReader()方法的引用,我是否需要将阅读器放在一个using.(现在基于我以前的帖子,我的理解是任何使用的对象IDisposable需要放入using,并SQLDataReader继承IDisposable,所以我需要把它.我的判断是否正确?)我只是困惑,因为它不是一个新的对象,它会在处理一个只是命令的引用指针的对象时引起任何问题吗?

非常感谢

c# dispose sqldatareader using-statement

11
推荐指数
1
解决办法
2万
查看次数

html上的10,000 +记录可以快速呈现

现在这将是一个非常荒谬的问题.但我能做什么,这是客户的要求.基本上,我们有一个网格(主 - 细节类型),可以达到大约1.5万多行(有可能在几年内达到30-50万行).

我的客户端不需要任何分页,也不希望任何数据被裁剪.此外,他并没有完全使用最新的硬件,因此在浏览器上渲染是一个大问题.他希望通过在浏览器上打印或查看所有内容来查看所有内容.(你们可能都认为这听起来多么疯狂,而且肯定是这样).

现在我想通过快速渲染html来解决这个问题.目前它的一个简单的asp.net网格视图没有分页.这基本上呈现HTML表格.我认为我的选择是: - 使用div手动渲染html(用于快速加载) - 将其导出为pdf或excel(有没有办法导出而不需要求助于第三方控件?) - 给手指(给客户:D j/k)

总结一下,最好的方法是在html上显示10,000多个数据记录?

html c# asp.net render

11
推荐指数
1
解决办法
5580
查看次数

应用设计5年

我的问题不是技术问题.这更像是一种哲学而非个人偏好.我正在设计和开发一个应用程序(web +桌面),这只是我想到的,并且想知道你们(程序员和设计师)是否曾经遇到过这个问题:

一些设计人员相信制作将会运行3 - 5年的应用程序,并且任何变更都将反映在他们身上,而无需采用系统核心变更.作为一个程序员,我知道一个事实,这是从来没有的情况.确实发生了小的化妆品变化,但通常它们会在一两年后消失,随着时间的推移,将会发生变化,需要进行核心更改,最终您将进行新的应用.

鉴于技术的快节奏变化,设计一个5年的应用程序是相当荒谬的,恕我直言.嗯,我的意思是不设计,但这个应用程序将运行5年的想法,并认为我们不需要创建一个新的,我认为生活在一个愚人的天堂.我是说真的,各位程序员,有一个正在运行的流程通常被重新制作/重新结构化/重新组织/重新编码几年下来行反正最关键任务的或基本的小应用程序.

所以我的问题是为什么要保持这种完美的应用程序运行十年的态度.真的很愚蠢,因为你知道技术每年都会发生变化; 新框架,新方法,新技术将出现,您的客户将需要它们.所以,如果你原谅我使用这个短语,WTF就是重点?

我一直告诉我的设计师,应用程序将在几年反正被重新设计,有在试图使其从@ss拍摄灯光是没有意义的,因为它只是不会,永远.没有完美的应用程序.

我希望你们得到我的漂移.你们有同样的感受吗?BTW我从事软件编程业务已有7年了.如果你真的考虑过这个问题,你真的认为Facebook将会在5年内保持不变,因为设计每年都会改变,以保持"时髦",但核心每隔几年就会发生变化.我很清楚这一点.我是偏执还是什么?请告诉我其他程序员和我在同一条路上.任何人?

c# asp.net model application-design

3
推荐指数
2
解决办法
295
查看次数

巨大的网格显示在asp.net页面上

我有一个重大问题.我们有一个asp.net应用程序,该报告显示现在大约1000行,并且可能长达20,000.不要问我为什么,但是客户端不喜欢分页而不喜欢过滤,他们喜欢在一个页面上看到所有内容.我们明显的问题是它在服务器上的加载,就内存而言(也是客户端浏览器可能崩溃的因素).

我的问题是:如果我只为这个报告提供一个自定义桌面应用程序,它可以显示成千上万行(通过Web服务或远程处理),它会阻塞服务器吗?在服务器上,IIS的工作进程在asp.net应用程序的情况下基本上会占用内存,但如果我让这个桌面应用运行分离在应用服务器上调用相同的数据库,这会解决内存问题吗?

c# asp.net remoting web-services

1
推荐指数
1
解决办法
503
查看次数