我正在两个单独的页面中创建一个简单的 ASP.NET 详细信息和网格视图,以便进行简单的记录保存。详细信息视图将用于将记录输入数据库,网格视图将用于这些记录的任何更新。我应该注意,我的 IIS 服务器上只启用了“Windows 身份验证”。
我要添加的功能之一是在将记录插入或更新到数据库时进行审计。我在 SQL Server 2012 中使用 CURRENT_TIMESTAMP 命令在插入和/或更新记录时输入。但是,我试图写出哪个活动目录用户更新或插入了给定的记录。我首先尝试利用 SYSTEM_USER 命令,但写入数据库的所有内容都是 SQL 服务器服务帐户或 dbo 帐户,这是不可接受的。我理解为什么要写入 SQL Server 服务帐户,但我需要将当前 Active Directory 用户的名称写入“用户名”字段,如下所述。
这是我现在用于时间戳和用户名的命令(这不是我正在使用的确切 SQL 命令):
INSERT INTO <table-name> ([timestamp], [username]...) VALUES (CURRENT_TIMESTAMP, SYSTEM_USER...)
UPDATE <table-name> SET [timestamp] = CURRENT_TIMESTAMP, [username]) = SYSTEM_USER WHERE.....
每当他们插入和/或更新给定记录而不是 SQL Server 服务帐户的凭据时,将当前 Active Directory 用户名写入“用户名”字段的最佳方法是什么?
提前致谢!