次の方法で共有


ユーザーを認証する方法

ユーザーを認証するには、コードで Authenticate メソッドを呼び出します。

次のコードは、サンプル アプリケーションからの抜粋です。

        //Event handler for Sign-In/Sign-Out button clicks.
private void buttonSignInOrOut_Click(object sender, EventArgs e)
        {
//Check to see if the user is not currently authenticated.
            if (!oID.IsAuthenticated)
            {
try
                {
//Try to authenticate the user by showing the Sign-In dialog window.
                    if (oID.Authenticate())
                    {
currentUserName = oID.UserName;
                    }
else
                    {
MessageBox.Show("Authentication failed");
                    }
                }
catch (WLLogOnException wlex)
                {
//Check to see if FlowUrl is defined.
if (wlex.FlowUrl != null)
                    {
//If FlowUrl is defined, direct user to the web page to correct the error.
MessageBox.Show(wlex.ErrorString + "Please go to " + wlex.FlowUrl.AbsoluteUri + "to correct the condition that caused the error");
                    }
else
                    {
//If FlowUrl is not defined, simply display the ErrorString.
MessageBox.Show(wlex.ErrorString);
                    }
                }
            }
else
            {
//If user is authenticated, they intended to Sign-Out.Try signing the user out.
try
                {
                    oID.CloseIdentityHandle();
currentUserName = "";
                }
catch (WLLogOnException wlex)
                {
//Check to see if FlowUrl is defined.
if (wlex.FlowUrl != null)
                    {
//If FlowUrl is defined, direct user to the web page to correct the error.
MessageBox.Show(wlex.ErrorString + "Please go to " + wlex.FlowUrl.AbsoluteUri + "to correct the condition that caused the error");
                    }
else
                    {
//If FlowUrl is not defined, simply display the ErrorString.
MessageBox.Show(wlex.ErrorString);
                    }
                }
            }
UpdateDisplay();
        }

このコードは、ボタンのクリック イベントに対して実行されます。ユーザーが [Sign In] (または [Sign Out]) ボタンをクリックすると、まず IsAuthenticated プロパティの状態が確認されて、現在のユーザーが既にサインインしているかどうかが判別されます。

現在のユーザーがまだ認証されていない場合は、Authenticate メソッドが呼び出されて、ユーザーの認証が行われます。

Authenticate の呼び出しは、try/catch ブロック内に入れ子にされています。これにより、Authenticate の呼び出しによって生成される可能性がある例外をキャッチして処理できます。例外を処理することで、アプリケーションがより堅牢なものになります。

Authenticate が呼び出されると、次のサインイン ダイアログ ボックスがユーザーに表示されます。

Windows Live ID 対応のサインイン ダイアログ ボックス

ユーザーが自分の Windows Live ID (ユーザー名およびパスワード) を入力してその資格情報が受け入れられると、ユーザーは認証され、Authenticate の呼び出しは true を返します。

現在のユーザーが認証済みである場合、アプリケーションは代わりに CloseIdentityHandle メソッドを呼び出します。

続いて、サインイン (またはサインアウト) の成功に従ってサンプル アプリケーションの表示が更新され、ユーザーが個人用に設定した機能が表示されます。詳細については、「個人用設定の実装」を参照してください。

関連項目

タスク

認証のセットアップ方法
Windows Live ID サンプル アプリケーションの実行

概念

自動サインインの実装
個人用設定の実装
クライアント アプリケーション用 Windows Live ID のコード サンプル