我有一个带有Windows身份验证的WebAPI应用程序。我需要在WebAPI控制器内部创建与外部应用程序(MS Dynamics CRM 2016)的连接,但我无法获取连接到WebAPI用户的密码。
是否有可能在WebAPI控制器中获取NetworkCredentials
或ClientCredentials
对象?我可以获得已连接用户的用户名和域名,但不能获得密码。 CredentialCache.DefaultNetworkCredentials
对象为空。
public class ParametersController : ApiController
{
public IHttpActionResult GetParameters()
{
NetworkCredential defaultNetworkCredentials = CredentialCache.DefaultNetworkCredentials; //null
return this.Ok();
}
}
答案 0 :(得分:3)
您无法从Windows身份验证中获取密码,原因与您无法使用Windows身份验证建立公共网站的原因相同,您可以在不知情的情况下获取访问者帐户的所有密码。这是一项安全功能。