我正在使用ADAL + Windows Azure Active Directory从Angular应用程序向我的WebAPI应用程序验证用户身份,
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:ClientID"]
},
});
}
这没有问题。
我有一些代码可用于修改Azure DevOps中的工作项:
Uri baseVsoUri = new Uri("https://xxxxx.visualstudio.com/DefaultCollection");
VssCredentials creds = new VssBasicCredential("", azureDevOpsPersonalAccessToken);
VssConnection conn = new VssConnection(baseVsoUri, creds);
...
await conn.UpdateWorkItemAsync(jsonPatchOperations, 1);
我面临的问题是因为我的个人访问令牌已用于通过Azure DevOps进行身份验证,因此我被列为已更新WorkItem。
是否可以为当前通过WebAPI进行身份验证的用户创建VssCredentials
对象?
修改
我尝试了this问题中建议的代码来自行设置ChangedBy
属性,但我没有所需的权限:
You don't have bypass rules permission. Please contact your collection administrator to grant this permission for enabling this action.
答案 0 :(得分:0)
您可以签出此example project来使用ADAL通过交互式提示来验证用户身份并调用rest api。
您还可以签出本文档Authorize access to REST APIs with OAuth 2.0来为用户生成访问令牌,然后使用该令牌调用rest api,
向您的Web应用程序用户授权以进行REST API访问,因此您的应用程序不再继续询问用户名和密码。 Azure DevOps Services使用OAuth 2.0协议为用户授权您的应用并生成访问令牌。从应用程序调用REST API时,请使用此令牌。
这里是您可以检出的example project。
有关更多示例,请参见Choosing the right authentication mechanism。