5

ダッシュボード ウィジェットで Microsoft VSTS SDK の REST API を使用して、TFS 2015 Update 3 サーバー上のすべての既存のビルド定義を取得しようとしています。

VSS.init({                        
    explicitNotifyLoaded: true,
    usePlatformStyles: true
});

VSS.require("TFS/Dashboards/WidgetHelpers", "TFS/Build/RestClient", "VSS/Authentication/Services"],
    function (WidgetHelpers, TFS_Build_Api) {
    VSS.register("BuildStatusMonitor.Configuration", function () {

        return {
            load: function (widgetSettings, widgetConfigurationContext) {
                var buildClient = TFS_Build_Api.getClient();
                buildClient.getDefinitions().then(function(definition) {
                    //
                }, function(reason) {
                    // 401
                });
            },
        }
    });
    VSS.notifyLoadSucceeded();
});

残念ながら、私はいつも

TFS.WebApi.Exception: TF400813: 匿名アクセスでリソースを利用できません。クライアント認証が必要です。

私は何を間違っていますか?

Chrome 開発者コンソールで get リクエストを送信すると、正しい応答が得られます: =/

$.get("http://*****:8080/tfs/TestReporting/DashboardWidgets/_apis/build/definitions?api-version=2.2").success(function(res) { console.log(res) }))

4

3 に答える 3

0

別の資格情報を有効にする必要がある場合があります。このリンクを参照してください: https://binary-stuff.com/post/how-to-enable-alternate-credentials-in-visual-studio-online-vso

また、このリンクは、認証を正しい方法で設定するのに非常に役立ちます: https://www.visualstudio.com/en-us/docs/integrate/get-started/auth/overview

于 2016-08-23T02:06:52.207 に答える
0

エラー情報によると、TFS REST API への認証が必要になる場合があります。

VSTS と TFS には異なる認証方法があり、どちらも PowerShell を介して実現できます。

スクリプトで TFS を使用して認証するには、ユーザー名パスワード(シークレット変数としてマスク) を PowerShell 経由でPSCredentialオブジェクトに渡し、REST メソッドを呼び出すときに-Credentialスイッチを使用します。以下の例:

$securePassword = $Password | ConvertTo-SecureString -AsPlainText -Force   $credential = New-Object System.Management.Automation.PSCredential($User, $securePassword)       
$releaseresponse = Invoke-RestMethod -Method Get -Credential $credential -ContentType application/json -Uri $Uri
于 2016-08-23T11:11:42.743 に答える