我有一个连接到数据库的c#程序,在数据库中我有SalesPersonID
列(带有一个例子124547的数字)。我有多个用户帐户窗口。有没有办法将登录窗口与c#程序连接,以便它“知道”当前正在使用哪个SalesPersonID
。它应该像这样工作:我连接到我的Windows帐户(John Black,传递用户名和密码),现在我正在我的程序中工作(我卖东西)。当我进行销售时,程序应该自动知道我是哪个用户(基于我的Windows登录)并且它“知道”我的数据库中有SalesPersonID
,因此带有SalesRecords
的数据库会自动使用我的SalesPersonID
号码更新。我希望我很清楚我想做什么。我不知道如何开始这个或者甚至可能。谢谢。
答案 0 :(得分:2)
是的,这是可能的。您可以从系统中获取当前的Windows登录用户名:
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
请注意,如果您在域中,则可以是DOMAIN \ username格式。
接下来,在您的数据库中,您创建一个表(或使用现有用户表)来存储每个用户的Windows登录名。像 -
这样的东西UserId WindowsLoginName
------------ ------------------
55 SALES\JohnBlack
(假设您的登录名是“JohnBlack”并且您位于名为“SALES”的域中,这将映射到您的帐户的Id值为“55”的用户表行 - 只是假设所有这些)
在您的程序中,您需要做的就是在表的“WindowsLoginName”列中查找“userName”的当前值(如上所示)并使用相关的Id值:)