从Windows身份验证中获取"ICredentials"

rhu*_*hes 4 .net c# asp.net authentication asp.net-mvc

我正在使用Windows身份验证.

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

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

该服务是TFS SDK.

Jak*_*cki 7

控制器在MVC有一个属性UserIPrincipal.

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

IPrincipalIdentity房产

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");
Run Code Online (Sandbox Code Playgroud)