次の方法で共有


認証済みブラウザ ウィンドウを開く

このトピックでは、付属のサンプル アプリケーションのソース コードを詳しく見て、どのように認証済みブラウザ ウィンドウを開くかを説明します。サンプル アプリケーションのソース コードを表示するには、[スタート] メニューから、このアプリケーションの Microsoft Visual Studio 2005 プロジェクトを開きます。

注意

サンプル アプリケーションとソース コードへのショートカットを見つけるには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[Windows Live ID Client SDK] をクリックし、適切なショートカットをクリックします。

認証済みブラウザ ウィンドウを開くには、まずユーザーが認証されていることが必要です。ユーザーを認証する方法の詳細については、「認証の実装」または「自動サインインの実装」を参照してください。

ユーザーが認証された後、認証済みブラウザ ウィンドウがどのように開くかは、エンド ユーザーがインストールしたブラウザによって異なります。

Internet Explorer を使用している場合

エンド ユーザーのブラウザが Internet Explorer 6 または Internet Explorer 7 の場合、OpenAuthenticatedBrowser メソッドを呼び出すことにより認証済みブラウザを開くことができます。次のコードは、サンプル アプリケーションからの抜粋です。

        //Event handler for View Blog button clicks.
private void buttonViewBlog_Click(object sender, EventArgs e)
        {
if (!String.IsNullOrEmpty(textBoxSpaceUrl.Text))
            {
//Try opening a pre-authenticated browser window to view the user's blog.
try
                {
                    oID.OpenAuthenticatedBrowser("http://" + textBoxSpaceUrl.Text + ".spaces.live.com/blog/", "lbi");
                }
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
            {
MessageBox.Show("Please enter a SpaceUrl before browsing.");
            }
        }

このコードは、エンド ユーザーが [View Blog] ボタンをクリックすると実行されます。

バージョン 6 よりも前の Internet Explorer を使用している場合、このメソッドを使用して認証済みブラウザ ウィンドウを開くことはできません。

他のブラウザを使用している場合

Internet Explorer 以外のブラウザを使用して認証済みブラウザを開くには、エンド ユーザーのコンピュータにどのブラウザがインストールされているかに関係なく、アプリケーションでそのブラウザの実行を呼び出す必要があります。さらに、適切な認証データがフォームの POST によってブラウザから適切な Windows Live ID 対応のサイトまたはサービスの URL に送信されるようにしなければなりません。詳細について、またはサービス固有の URL を取得する方法については、そのサービスのドキュメントを参照してください。

これらの機能をどのように実装するかは、エンド ユーザーのコンピュータが具体的にどのような構成になっているかによって異なります。Web サービスが必要とする認証データは、GetNavigationData メソッドを呼び出すことにより取得できます。

これを実装する 1 つの方法は、適切な Windows Live ID 対応サイトの URL に認証データを POST するための <body onLoad="…"> イベント ハンドラが含まれている一時 HTML ファイルをコードで書き出すことです。そして、アプリケーションがユーザーのブラウザの実行を呼び出したときに、その作成した一時 HTML ファイルをブラウザで開くようにします。たとえば、コードで一時 HTML ファイルを C:\temp\myapp\browse.html に書き出す場合、Process.Start メソッドを次の行のコードのように使用すると、既定のブラウザを起動してこのファイルを開くことができます。

System.Diagnostics.Process.Start("c:\\temp\\myapp\\browse.html");

関連項目

タスク

Windows Live ID サンプル アプリケーションの実行

概念

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