监控登录多用户软件

时间:2013-03-25 13:09:16

标签: c# sql database

我们目前正在使用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#。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在您写入日志之前代码中的Dustine您可以跟踪当前用户根据他们的登录调用代码,您可以执行此操作并返回当前用户,您需要确定代码中的位置想放置它

var currentUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split(
    new [] {"\\"}, 
        StringSplitOptions.RemoveEmptyEntries)[1];

这里是您可以看到的相同代码将字符串拆分为DomainUser

var currentUser2 = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var SplitUser = currentUser2.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
var domain = SplitUser[0];
var domainUser = SplitUser[1];