我有一个使用TFS客户端库访问本地TFS服务器的ASP.NET MVC应用程序。该应用程序在Windows域上使用Windows身份验证,并且在与TFS的连接中使用了默认凭据。
我需要扩展应用程序以访问Azure DevOps组织。我尝试创建VSSConnecton对象,并使用如下所示的个人访问令牌(PAT):
VssConnection connection = new VssConnection(accountUri, new VssBasicCredential(string.Empty, personalAccessToken));
WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>();
虽然未使用PAT。无论我在VssBasicCredential方法中使用哪种重载,都将通过用户的Windows凭据。
即使正在从Windows AD域同步Azure AD,也将用户视为另一个对象,并且无权访问Azure DevOps。因为Azure AD用户和本地Windows用户具有相同的用户名(fname.lname@domain.com),所以我也无法将本地Windows用户添加为Azure中的外部用户。
是否有一种方法可以使用Windows身份验证从ASP.NET应用程序使用PAT(或其他替代凭据)对Azure DevOps进行身份验证?
答案 0 :(得分:1)
尝试使用Azure AD凭据进行身份验证:
VssConnection connection = new VssConnection(accountUri, new VssAadCredential(username, password));
答案 1 :(得分:0)
这最终根本不是代码的问题。即使连接到Windows AD域,上面列出的代码也可以工作。在测试期间,我通过VPN连接到网络,显然该连接存在一些问题,导致身份验证无法正常工作。