ASP.NET:簡単OpenID対応
簡単にできたので、せっかくだから記事にしておこうと思います。
サンプルソース
動作しているものはこちら
http://zio3.net/OpenIDSample/default.aspx
1 OpenIDコントロールの入手
dotnetopenid(GoogleCode)からコントロールのJanrain.OpenId.dllを入手
ただ、ここのzipはバグ(※1)でソースから構築したものを利用。
サンプルソースの中に構築したDLLを含んでいます。
2.プロジェクトに追加
参照設定に追加します。
3 Loginページを作成
とりあえずlogin.aspxでページを新規に作ります。
4 OpenIDコントロールDLLをツールボックスに追加
ツールボックス->右クリック->アイテム選択->参照->
先ほどのJanrain.OpenId.dllを選択
5 login.aspxにドラッグアンドドロップ
4で追加されたOpenIdLoginコントロールをページにD&Dで落とせばOK
6 web.configを設定
標準だとWindows認証なのでForm認証に変更します。
<authentication mode="Forms">
<forms name="OpenIdExampleConsumer" loginUrl="login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
7 アプリケーションから利用
下記のようなコードで利用可能。ほかに標準のログイン系コントロール
(LoginView,LoginStatus,LoginNameなど)も利用可能です。
protected void Page_Load(object sender, EventArgs e)
{
string userID = Page.User.Identity.Name;
}
※1 OpenID利用先のHTMLの解読に失敗することがありました。
認証先のHTMLでCSSファイルのLinkタグを誤読してた様子。