次の方法で共有


ステップ 1.3 : .NET Passport SSI を C# クラス ファイルに追加する

ここでは、Microsoft® .NET Passport シングル サインイン (SSI) サポートを Web フォーム アプリケーションの C# クラス モジュールに追加します。

  1. Default.aspx のクラス ファイルを開きます。既定では、このファイルの名前は Default.aspx.cs です。このクラス ファイルを開くには、デザイン モードまたは HTML モードで Default.aspx が読み込まれるときに、メインの編集ウィンドウを右クリックし、[コードの表示] を選択します。また、ソリューション エクスプローラで [Default.aspx] を右クリックして同じオプションを選択することもできます。

  2. Default.aspx.cs の先頭に近い位置に、「using System.Web.Security;」を追加します。次のコード部分の青色で強調表示された行が、追加した箇所を示しています。


...
using System.Web.UI.HtmlControls;
using System.Web.Security;
...

この行は、.NET Passport オブジェクト クラスが定義される名前空間を参照します。

  1. 次のコード部分で青色で強調表示されているように、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 オブジェクトを宣言します。

  1. 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 : サポート ファイルを追加する