2012-03-05 4 views
3

現在、RESTベースのWebサービスから一部のデータを取得するWindows 8コンシューマプレビューのC#Metroアプリケーションを作成しています。私は、現在のユーザーのWindows Liveアカウントを使用して、アプリケーションに対してサービスを認証する必要があります。そのため、私は私の解決策には、Windows Live SDKを追加しましたし、私のログインビューにドキュメントから次のコードを貼り付け:AuthenticationTokenがnullです

LiveAuthClient liveClient = new LiveAuthClient();     
LiveLoginResult loginResult = await liveClient.Login(new string[] { "wl.signin" }); 

ログイン呼び出しが成功した後、私は、SSL経由でLiveConnectSessionの暗号化AuthenticationTokenを渡したいですトークンを復号化し、それが興味のある情報を読むべき私のWebサービス(これはSSOシナリオでドキュメントが示唆しているものです)に書きます。しかし残念なことに、セッションのAuthenticationTokenプロパティは常にnullです。私はここに何かを逃していますか

+0

これはソートされていますか?もしそうなら、自分で答えを書くことができます。 –

+0

@Joachim私はこの問題の解決策を見つけられませんでした。現在、私はHTTPS上で単純なユーザー名/パスワードの方法を使用しており、後ほど委任された認証を追加します。 – Gene

+0

あなたがチェックした答えはあなたのために働いたのですか? –

答えて

5

私は同じ問題に遭遇したと私は私の設定には2つの問題気づいた:私は私ではなかったhttps://manage.dev.live.com

  • のAPI設定で定義された「ドメインをリダイレクト」を持っていなかった

    1. をAPIの設定の例では、オーバーロードLiveAuthClientコンストラクタ

    を使用して次のように指定します。

    リダイレクトドメイン:URIは、限り、私が言うことができるものから取り組んでエンドポイントを指すようにする必要はありませんリダイレクト

    var authClient = new LiveAuthClient("http://localhost/myapp"); 
    var loginResult = await authClient.LoginAsync("wl-signin"); 
    
    //this should no longer be null 
    var authToken = loginResult.Session.AuthenticationToken; 
    

    http://localhost/myapp

    その後、LiveAuthClientのコンストラクタのオーバーロードを使用2つの値が一致していればビジネスになるはずです。

  • 1

    MetroスタイルアプリのLive Connectアプリ管理サイトにアプリを登録しましたか?ライブサービスで動作させるには、hereを登録する必要があります。アプリパッケージに名前とパブリッシャーを指定した後、次の手順を説明します。

    +0

    アプリは正しく登録されていますが、このヒントはありがとうございます。 – Gene

    関連する問題