2008年12月12日金曜日

ASP.NETでOpenID対応サイト作成

PerlやPHPでのOpenID対応サイトの作り方は結構あるので、ASP.NETで作ってみました。
OpenIDのライブラリはGoogleが公開しているものを以下からダウンロードしました。
http://code.google.com/p/dotnetopenid/downloads/list

開発環境は、
OS:WindowsXP Pro SP3
IDE:Visual Studio 2005 Professional Edition
.NET Framework:2.0.50727
です。

以下の手順で作成・確認します。
1.Visual Studioで新規Webアプリケーションを作成








2.参照設定にGoogleからダウンロードしたライブラリ(DLL)を設定









3.ツールボックスにダウンロードした部品(OpenIdLogin)を追加し、Webページに追加








ツールボックス→右クリック→アイテム選択→参照より先ほどのDLLを追加する。








Webページ上へOpenIdLoginをドラッグ&ドロップする。










4.認証状態を表示するための部品(ラベルなど)をWebページに追加








ページがロードされたときに状態をラベルに表示するため、以下のコードを追加する。(Default.aspx.vb)

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Lbl_UserID.Text = User.Identity.Name
lbl_IsAuthenticated.Text = IIf(User.Identity.IsAuthenticated, "True", "False")
End Sub

End Class


5.フォーム認証を使う様に環境を設定

WebサイトメニューよりASP.NET構成を開き、Webサイト管理ツールより、
セキュリティ→認証の種類の選択のリンクをたどり、ユーザがサイトにアクセスする方法を「インターネットから」へ変更する。









6.ビルド、テスト

実行すると、認証前の状態ではUserIDは空白、IsAuthenticatedはFalseになっているので、先日紹介したWindowsLiveのOpenIDを入力してLoginをクリックする。









WindowsLiveの認証ページへリダイレクトされるので、パスワードを入力してサインインする。









認証が成功すると、UserIDにOpenID、IsAuthenticatedにTrueが返される。











とりあえずということもあり単純にログインおよび状態の表示のみをしましたが、その他の機能もそのうち使ってみたいと思います。

0 件のコメント: