在C#中使用Windows登录的SSO

SSO using Windows Login in C#

我有一个Linux托管的Web应用程序和一个C#Windows客户端。该Web应用程序当前允许它进行身份验证的AD凭据。

并非所有用户都基于Windows。我正在尝试为Windows用户实现单点登录解决方案。如果用户已经通过Windows登录针对AD进行了验证,则我希望允许访问我的应用程序。

我知道如何根据AD验证凭据:

1
2
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,
                userName, password);

但是我没有用户名或密码。我知道AD正在使用Kerberos来存储Windows凭据,但我不知道如何访问该票证。

除了C#外,我的问题类似于"如何确定登录的Windows帐户是否已在域上进行身份验证"或"在客户端-服务器应用程序中使用Active Directory对用户进行身份验证"。

我正在使用LightTpd。


看看在Apache中通过Kerberos协议提供Active Directory身份验证。如果在Windows应用程序中使用WebClient或WebRequest类,请确保将UseDefaultCredentials属性设置为true。