ステップ 1.3 : .NET Passport SSI を C# クラス ファイルに追加する
ここでは、Microsoft® .NET Passport シングル サインイン (SSI) サポートを Web フォーム アプリケーションの C# クラス モジュールに追加します。
Default.aspx のクラス ファイルを開きます。既定では、このファイルの名前は Default.aspx.cs です。このクラス ファイルを開くには、デザイン モードまたは HTML モードで Default.aspx が読み込まれるときに、メインの編集ウィンドウを右クリックし、[コードの表示] を選択します。また、ソリューション エクスプローラで [Default.aspx] を右クリックして同じオプションを選択することもできます。
Default.aspx.cs の先頭に近い位置に、「using System.Web.Security;」を追加します。次のコード部分の青色で強調表示された行が、追加した箇所を示しています。
...
using System.Web.UI.HtmlControls;
using System.Web.Security;
...
この行は、.NET Passport オブジェクト クラスが定義される名前空間を参照します。
- 次のコード部分で青色で強調表示されているように、lblPUID コントロール宣言のすぐ下の WebForm1 クラス定義に、「protected PassportIdentity oMgr;」を追加します。
...
protected System.Web.UI.WebControls.Label lblSignIn;
protected System.Web.UI.WebControls.Label lblPUID;
protected PassportIdentity oMgr;
...
この行は、.NET Passport のサインインとサインアウトの操作を実行するために使用される PassportIdentity オブジェクトを宣言します。
- Page_Load 関数に次のコードをすべて追加し、ruURL 文字列 (赤で強調表示された部分) をサーバーの Default.aspx ページへの URL パスに置き換えます。
private void Page_Load(object sender, System.EventArgs e)
{
string ruURL = "http://YourServer/AlertsTutorial/Default.aspx";
// turn off caching
Response.CacheControl = "private";
Response.Expires = 0;
Response.AddHeader ("pragma", "no-cache");
// create a PassportIdentity object
oMgr = new PassportIdentity();
// display the .NET Passport sign-in/sign-out button within the lblSignIn control
// use the long form of LogoTag2() to set fForceLogin
lblSignIn.Text = oMgr.LogoTag2(ruURL, -1, true, null, -1, false, null, -1, false);
// if signed in, display user's PUID
if ( oMgr.IsAuthenticated )
{
lblPUID.Text = "Your PUID is: " + oMgr.HexPUID;
lblPUID.Visible = true;
}
else
{
lblPUID.Visible = false;
}
}
このコードにより、.NET Passport のシングル サインイン ページが設定されます。ユーザーが現在サインインしていない場合はサインイン ボタンが表示され、.NET Passport Unique ID (PUID) ラベルは表示されません。ユーザーがサインインすると、ブラウザのアドレス ウィンドウに Query String が表示されないように、ユーザーはこの同じ URL にリダイレクトされます。サインインすると、サインアウト ボタンとユーザーの PUID が表示されます。
前述の C# コードによって、次の操作が実行されます。
- どのような状況でもユーザーの HTTP プロキシがユーザーの個人データをキャッシュしないように、キャッシュをオフにします。
- SSI を実行するための PassportIdentity オブジェクトを作成します。
- サインインの結果としてページが表示される場合は、この同じページにリダイレクトし、要求から Query String を破棄します。この操作の目的については、.NET Passport SDK のマニュアルを参照してください。
- lblSignIn Text プロパティに、PassportIdentity オブジェクトの LogoTag2 メソッドから返された HTML コードを設定します。この HTML コードは、サインイン ロゴと .NET Passport サインイン サイトへのリンクを提供します。fForceLogin パラメータは true に設定され、既存のサインインを使用しないサインインをユーザーに強制します。
- ユーザーが現在サインインしている場合は、そのユーザーの PUID が表示されます。
これで、このアプリケーションを実行すると、最初のラベルの代わりに .NET Passport サインイン ボタンが表示され、2 番目のラベルは表示されません。このときの表示は次のようになります。
前のステップ : ステップ 1.2 : .NET Passport SSI を .ASPX ファイルに追加する | 次のステップ : ステップ 1.4 : サポート ファイルを追加する