什么是Impersonation以及它如何与PrincipalContext一起使用

时间:2015-07-21 07:56:30

标签: c# authentication principalcontext

我需要在我的应用程序上登录用户验证他的凭据。我找到了旧的LogonUser API和新的PrincipalContext对象。 我真的很想使用PrincipalContext,因为它简单明了,但我知道LogonUser你可以获得一个令牌用于冒充用户吗?究竟是什么冒充?有没有办法使用PrincipalContext做同样的事情?

谢谢

1 个答案:

答案 0 :(得分:1)

如果您需要以不同的用户(通常具有更多/特定访问权限)执行您的应用程序,而不是当前登录的用户,则通常会使用impersonation

  

编程上下文中的术语“模拟”是指在最初启动应用程序的用户之下在另一个用户上下文下执行代码的技术,即在执行应用程序期间临时更改用户上下文一次或多次

如果您需要对用户进行身份验证并验证凭据,则可以使用PrincipalContext

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "yourdomain.com"))
{
   bool auth = ctx.ValidateCredentials(username,password); 
}