1

LiveId Web 認証シナリオでは、クライアント アプリケーションが「clearcookie」リクエストを受信すると、認証 Cookie をクリアする責任があり、http を介して GIF 画像を返すことで成功を確認する必要があります。asp.net-mvc で liveid Web 認証の参照実装を使用すると、次のようになります。

 if (Request["action"]=="clearcookie")
 {
      string contentType;
      byte[] content;
      wll.GetClearCookieResponse(out contentType, out content);
      return this.File(content, contentType);
 }

wll.GetClearCookieResponse は次のように実装されます。

    public void GetClearCookieResponse(out string type, out byte[] content)
    {
        const string gif = 
          "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7";
        type = "image/gif";
        content = Convert.FromBase64String(gif);
    }

したがって、GetClearCookieResponse メソッドは、小さなハードコードされた GIF を含む byte[] 配列を作成します。

GIF で応答する必要がある特定の理由はありますか? プレーンテキスト (「OK」) や JSON だけではないのはなぜですか?

GIF を応答として返す (LiveId 以外の) プロトコルはありますか? 同様のコミュニケーション シナリオを必要とするプロジェクトでこのソリューションを採用する理由があるかどうかを知りたいので、質問しています。

4

1 に答える 1

0

ユーザーが Windows Live または Windows Live アプリケーションからサインアウトすると、ユーザーがサインインしている可能性のある他のすべての Windows Live アプリケーションからユーザーをサインアウトするための最善の努力が行われます。これは、クエリ文字列で「action」パラメーターを「clearcookie」に設定して、各アプリケーションのハンドラー ページを呼び出すことによって行われます。その後、アプリケーション ハンドラーは、ログインに関連付けられたすべての Cookie またはデータをクリアする必要があります。ユーザーのサインアウトに成功した後、ハンドラーはaction=clearcookie クエリへの応答として GIF (任意の GIF) を返す必要があります。

この関数は、アプリケーションからの正常なサインアウトを示すためにアプリケーション ハンドラーが返すことができる適切なコンテンツ タイプと本文の応答を返します。

コードは、指定された画像 (.gif) のみを返す必要があり、それ以外は何も返しません。余分なバイトがあると、エラーが発生します (画像の形式が正しくありません)。

私はそれが期待されるあらゆるタイプの応答である可能性があり、彼らが GIF を選択したのではないかと疑っています。

于 2010-05-13T17:03:23.427 に答える