如何将Windows身份验证从ASP.NET应用程序传递到TFS 2017



我正在创建一个使用AD身份验证登录的ASP.NET Web应用程序。该应用程序提供了一些调用TFS RESTAPI的服务,该服务也使用AD身份验证。我需要将登录信息传递给TFS,并且在签名后完全不想保留用户名/密码。有什么方法只是将当前的会话令牌或身份传递给TFS REST API?某种程度上类似于SSO?

谢谢

您可以在下面尝试这样做:

  • 使用ASP.NET冒充
  • 将TFS凭据存储在数据库或安全地点并使用TFS在代码中的模仿以连接到TFS
  • 创建在TFS安全下运行的WCF服务证书。此WCF服务将使TFS查询。从您的网络应用程序您可以调用此WCF服务。

注意:

  1. 对于1条,请看本教程:设置模仿对于ASP.NET TFS API应用
  2. 对于2条,这也需要TFS管理员来制作一些 设置(模仿TFS)

正如@patricklu所述,我们需要在web.config中启用模仿。另一件事,如果您使用httpclient,因为它是异步的,它将无法使用:

var client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials=true})
HttpResponseMessage response = client.GetAsync("your-tfs-url").Result;

所以最好使用webclient

 WebClient wc = new WebClient();              
 wc.UseDefaultCredentials = true;
 wc.Headers.Add(System.Net.HttpRequestHeader.ContentType, "application/json; 
 charset=utf-8");                       
 var result=wc.DownloadString("http://yourtfs-url");

相关内容

最新更新