C# C语言中的LDAP和ActiveDirectory认证
我不熟悉LDAP和active directory身份验证,我只研究了一些有关LDAP身份验证的内容,并使用示例应用程序完成了这些工作 我只是检查用户是否存在于ActiveDirectory中C# C语言中的LDAP和ActiveDirectory认证,c#,ldap,userinfo,C#,Ldap,Userinfo,我不熟悉LDAP和active directory身份验证,我只研究了一些有关LDAP身份验证的内容,并使用示例应用程序完成了这些工作 我只是检查用户是否存在于ActiveDirectory中 public static bool DoesUserExist() { using (var domainContext = new PrincipalContext(ContextType.Domain,Environment.UserDomainName)) { using
public static bool DoesUserExist()
{
using (var domainContext = new PrincipalContext(ContextType.Domain,Environment.UserDomainName))
{
using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, Environment.UserName))
{
return foundUser != null;
}
}
}
在我们的本地系统中,它工作得很好,但是当我在ActiveDirectory服务器中托管并且试图使用服务器IP地址访问它时,我面临一些问题,如
ContextType.Domain,Environment.UserDomainName and Environment.UserName
因为这三个值来自服务器信息,而不是访问此应用程序的用户
因此,请帮助我如何获取访问此应用程序的用户信息,以便我需要将这些信息传递给服务器,并需要检查用户是否为activedirectory用户Environment.UserDomainName返回Environment.UserName的域部分,例如mydomain.com,因此您不希望这样
Environment.UserName本身将返回当前登录到Windows的用户,即应用程序池用户-请参阅
最好检查当前web请求的标识,因此在MVC控制器或WebForms页面中,使用this.User
或者,如果您正在使用Windows身份验证或将表单身份验证挂接到AD,则当前线程主体应为当前请求用户,以便您可以使用。这是ASP.NET应用程序吗?是。。。使用LDAPyes的ActiveDirectory身份验证我尝试使用Thread.CurrentPrincipal.Identity.Name,但在本地系统中它工作正常,但我托管在服务器上,但它仍然只返回服务器用户名而不是客户端用户名