1

ここで説明するように、Windows 8ストアアプリにACSトークンを取得させる手順を実行しました: WebAuthenticationBrokerはWindows8Metroアプリのリリース候補後に機能しますか

ただし、WebAuthenticationResultオブジェクトのResponseDataプロパティには、ACSで指定されたコールバックURIのみが含まれ、トークン情報は含まれていません。私のコードの下。

Windows8クライアントの認証方法

private async void Authenticate()
    {
        WebAuthenticationResult webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(
            WebAuthenticationOptions.None,
            new Uri("https://myACSnamespace.accesscontrol.windows.net:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http://localhost:12714/"),
            new Uri("http://mypublicIPaddress:80/WebAppMVCAPI/api/federation/end"));

証明書利用者アプリケーションのリターンURLがに設定されているhttp://mypublicIPaddress:80/WebAppMVCAPI/api/federation/en

Webアプリケーション上の私のコントローラーは次のようにプログラムされています。

public class FederationController : ApiController
{
    protected virtual string ExtractBootstrapToken()
    {
        return "Hello World";
        //return HttpContext.Current.User.BootstrapToken();
    }

    [HttpGet]
    public string Get()
    {
        return "Hello Get World";
    }

    [HttpPost]
    public HttpResponseMessage Post()
    {
        var response = this.Request.CreateResponse(HttpStatusCode.Redirect);
        response.Headers.Add("Location", "/WebAppMVCAPI/api/federation/end?acsToken=" + ExtractBootstrapToken());
        return response;
    }
}

}

ご想像のとおり、WebアプリケーションはIISサーバーで実行され、ポート80でリッスンしています。ルーターは必要に応じて着信要求を転送するように構成されており、Visual StudioでWebアプリケーションを起動すると、インターネットからアプリケーションにアクセスできます。亭主。

アイデアは、Windows8ストアアプリにFacebookログインでACSからトークンを取得させることです。win8クライアントを起動すると、アプリケーションにFacebookのログインページが表示されます。クレデンシャルで正常にログインしました。ただし、webauthenticationresult.responsedataプロパティを見ると、コールバックURIのみが表示されます。また、ACSがコールバックURIに何かを投稿しようとしたファイアウォールのログが表示されません。

4

1 に答える 1

1

返信側アプリケーションのリターンURLは次のようになります。

http://mypublicIPaddress:80/WebAppMVCAPI/api/federation

いいえ

http://mypublicIPaddress:80/WebAppMVCAPI/api/federation/end
于 2012-12-17T22:55:04.383 に答える