Visual Studio Online SDK

问题描述:

我正在开发一个项目,其中需要在Visual Studio Online实例上创建工作项目。我正在使用个人访问令牌。这会将CreatedBy设置为我的名字(期望的行为)。我正在考虑使用Oauth2;但是,我不确定是否有办法执行此服务器到服务器(非交互式)?任何建议的想法?Visual Studio Online SDK

 

      var personalAccessToken = "PAT Value fro Config"; 
      HttpClient client = new HttpClient(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", 
       Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "", personalAccessToken)))); 

      return client; 


PAT是在用户的安全上下文中创建的。我需要找到一种方法来使用Oauth,而不必涉及UI。所以我正在寻找服务器到服务器身份验证。

 
object[] patchDocument = new object[5]; 
      patchDocument[0] = new { op = "add", path = "/fields/System.Title", value = bugTitle }; 
      patchDocument[1] = new { op = "add", path = "/fields/Microsoft.VSTS.TCM.ReproSteps", value = bugReproSteps }; 
      patchDocument[2] = new { op = "add", path = "/fields/Microsoft.VSTS.Common.Priority", value = "1" }; 
      patchDocument[3] = new { op = "add", path = "/fields/Microsoft.VSTS.Common.Severity", value = "2 - High" }; 
      patchDocument[4] = new { op = "add", path = "/fields/System.IterationPath", value = deserializeIteration }; 
      //System.IterationPath 
      string postUrl = $"{_vsoInstanceUrl}/DefaultCollection/ProjectName/_apis/wit/workitems/$Bug?api-version=1.0"; 
await ExecutePatch(patchDocument.ToArray(), postUrl, "application/json-patch+json"); 
+0

最好的办法是研究这个(询问这里Q是不是真的,因为它是如何工作的研究),并尝试一些东西。如果遇到问题,请返回一些代码和结果。 https://*.com/help/how-to-ask – jdv

否没有服务器到服务器的OAuth支持。如果您使用.NET客户端对象模型,则可以使用Impersonation support

If your account has "Act on behalf of others" permissions you can also achieve a "User X via YourAccount".