我们目前正在用C#开发一个实现审计跟踪的软件,但我们不知道当多用户使用时,哪个用户实现了更新/插入/删除。我的用户表如下所示:
create table Users(
userID varchar(20) not null,
userPass varchar(20) not null,
userFName varchar(25) not null,
userLName varchar(25) not null,
userMName varchar(25) not null,
secretAnswer varchar(40),
userStatus int default 0,
primary key(userID)
)userStatus检查用户是否已登录,默认情况下为0,表示用户未登录。当他/她登录时,更新为1,表示他/她是该软件的当前用户。因此,为了检查谁已经登录,我的代码是
select userID from Users where userStatus = 1当用户注销或软件关闭时,所有用户的所有userStatus将被重置为0。但此逻辑仅适用于单个用户。如何跟踪实现更新/插入/删除的用户?我使用的是C#。提前感谢您的帮助。
发布于 2013-03-25 21:31:38
在您的代码中写入日志之前,您可以根据用户的登录信息跟踪正在调用代码的当前用户。您可以执行此操作,它将返回当前用户,您需要确定要将其放置在代码中的哪个位置
var currentUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split(
new [] {"\\"},
StringSplitOptions.RemoveEmptyEntries)[1];下面是将字符串拆分为Domain和User的相同代码
var currentUser2 = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var SplitUser = currentUser2.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
var domain = SplitUser[0];
var domainUser = SplitUser[1];https://stackoverflow.com/questions/15615773
复制相似问题