0

ホワイト ペーパーでは、REST を使用してトークンを要求し、トークンを使用して発行するリクエストにアタッチし、サービス バスでサービスを呼び出すことができると述べていますが、トークンを取得できません。

以下は、REST 呼び出しを行うために使用するコードです。結果を取得できますが、これは html エラー ページでした..トークンを取得できませんでした...そして、ソリューション名とパスワードが正しいと確信しています。クラウド内の私のサービスは RESTful サービスです。サービス エンドポイントをブラウザに配置すると、ソリューション名とパスワードを入力するように求められます。以下のコードで使用されているものと同じものを入力すると、問題なく動作します。 .

以下のコードが白人の言ったことを理解できない理由を誰か教えてもらえますか??

public static String call() {
    try {
        HttpClient client = new HttpClient();
        String uri = String.format("https://accesscontrol.windows.net/isssuetoken.aspx?u=%s&p=%s", "solutionname", "password");
        log.debug("Out going uri is : " + uri);
        GetMethod get = new GetMethod(uri);
        int status = client.executeMethod(get);
        byte[] responseBody = get.getResponseBody();
        log.debug("status return is : " + status);
        if (status == HttpStatus.SC_OK) {
            return new String(responseBody);
        }
    } catch (Exception ex) {
        log.error("Error while calling AccessControl protal.", ex);
    }        
    return null;
}

================ 以下はホワイトペーパーからの言葉 =============

https://accesscontrol.windows.net/isssuetoken.aspx?u= {ソリューション名}&p={パスワード}

応答には、.NET Access Control Service 内に保持されているトークンへの参照 Cookie (プレーン テキスト形式) が含まれています。クライアントは、「X-MS-Identity-Token」という名前のカスタム HTTP ヘッダーで送信 HTTP 要求に Cookie 値を追加することにより、Cookie を使用してリレー サービスにアクセスできます。この手法を使用する場合、Microsoft は HTTPS を使用してネットワーク上の Cookie 値を保護することを強くお勧めします。.NET Access Control Service の詳細、および (.NET Service Bus だけでなく) 独自のサービスと組み合わせて使用​​する方法について具体的に学習するには、付属のホワイト ペーパー「A Developer's Guide to the .NET」を参照してください。アクセス制御サービス。

4

2 に答える 2

0

参考までに、これは REST ではありません。これは単に RPC です。

于 2009-07-22T19:40:57.627 に答える
0
    String uri = String.format("https://accesscontrol.windows.net/isssuetoken.aspx?u=%s&p=%s", "solutionname", "password");

上記のようなものは間違っています... ホワイトペーパーは間違いを犯し、

リンクに余分な 's' が 1 つあります。それは String uri = String.format(" https://accesscontrol.windows.net/issuetoken.aspx?u=%s&p=%s ", "solutionname", "である必要があります。パスワード");

于 2009-07-17T03:40:21.520 に答える