从Windows身份验证中获取“ICredentials”

时间:2013-11-19 11:54:56

标签: c# asp.net .net asp.net-mvc authentication

我正在使用Windows身份验证。

我需要登录服务。它需要使用ICredentials对象进行身份验证,但宁愿避免要求用户再次输入其凭据。

有没有办法从当前登录的用户中获取ICredentials

该服务是TFS SDK。

1 个答案:

答案 0 :(得分:7)

MVC中的控制器的属性UserIPrincipal

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.user%28v=vs.108%29.aspx

IPrincipal有一个Identity属性

http://msdn.microsoft.com/en-us/library/system.security.principal.iprincipal.identity%28v=vs.110%29.aspx

类型为IIdentity

http://msdn.microsoft.com/en-us/library/system.security.principal.iidentity%28v=vs.110%29.aspx

如果您使用的是Windows身份验证,则实际实例的类型为WindowsIdentity

http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity%28v=vs.110%29.aspx

希望它包含您需要的所有凭据信息。

另外,您可能想尝试:

Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultNetworkCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");