在服务器端验证Windows客户端身份会话ID

时间:2019-05-27 13:13:45

标签: c# active-directory

我们希望允许用户使用其Windows帐户登录到我们的Client-Server应用程序,而无需提供密码(因为他们已经在计算机上登录了)。域上的用户帐户由Active Directory管理。

今天我们使用自定义身份验证(登录名和密码存储在数据库中):

// Client side
void Login(string username, string password)
{
   // Call server side login
}

// Server side
void Login(string username, string password)
{
   if (DatabaseAuthentication(username, password))
   // Do something
}

我们想获取当前的用户会话ID /令牌,并在服务器端对其进行验证。像这样:

// Client side
void Login()
{
   var sid = WindowsIdentity.GetCurrent().SOMETHING;

   // Call server side login
}

// Server side
void Login(string sid)
{
   if (!IsSessionKnownOnDomain(sid)) return;

   // Do something
}

有人知道这是否可能吗?

可能的副本: Authenticating users using Active Directory in Client-Server Application 但是问题是C ++,而不是CSharp。 另外,如果身份验证类型为Kerberos,我不知道有关NegociateStream的说明是否适用于此?

预先感谢

0 个答案:

没有答案