我正在使用Windows身份验证。
我需要登录服务。它需要使用ICredentials
对象进行身份验证,但宁愿避免要求用户再次输入其凭据。
有没有办法从当前登录的用户中获取ICredentials
?
该服务是TFS SDK。
答案 0 :(得分:7)
MVC中的控制器的属性User
为IPrincipal
。
http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.user%28v=vs.108%29.aspx
IPrincipal
有一个Identity
属性
类型为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");