用c#程序连接windows登录?

时间:2014-06-28 09:28:27

标签: .net sql-server

我有一个连接到数据库的c#程序,在数据库中我有SalesPersonID(带有一个例子124547的数字)。我有多个用户帐户窗口。有没有办法将登录窗口与c#程序连接,以便它“知道”当前正在使用哪个SalesPersonID。它应该像这样工作:我连接到我的Windows帐户(John Black,传递用户名和密码),现在我正在我的程序中工作(我卖东西)。当我进行销售时,程序应该自动知道我是哪个用户(基于我的Windows登录)并且它“知道”我的数据库中有SalesPersonID,因此带有SalesRecords的数据库会自动使用我的SalesPersonID号码更新。我希望我很清楚我想做什么。我不知道如何开始这个或者甚至可能。谢谢。

1 个答案:

答案 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值:)