フォーム認証
概要
入力フォームによるログインページを作る。
1.web.config で「フォーム認証」モードを設定。
2.web.config で未ログインユーザーからのwebページへのアクセスを禁止。
3.ログインページの作成
2.web.config で未ログインユーザーからのwebページへのアクセスを禁止。
3.ログインページの作成
参照
- .NET Framework 一般リファレンス authentication の forms 要素 (ASP.NET 設定スキーマ)
- Login クラス (System.Web.UI.WebControls)
参考
- @IT:連載:プログラミングASP.NET 第17回 ASP.NETにおける認証と認定
- @IT:.NET TIPS [ASP.NET]構成ファイルのみでフォーム認証を実現するには? - C# Webフォーム
- @IT:連載:プログラミングASP.NET 第19回 フォーム認証を実装したASP.NETアプリケーション
- @IT:ASP.NET 2.0が変えるWebアプリ開発の世界 第3回 ASP.NET 2.0のログイン管理とウィザード・ページ
前提条件
手順
web.config の「authentication」を、windows から Forms に変更し、
「authorization」(つづりが似ている)を追加する。
「authorization」(つづりが似ている)を追加する。
<authentication mode="Windows" />
この部分。
not found (247.jpg)
以下のように書き換える。
<authentication mode="Forms" />
<authorization>
<deny users ="?"/>
</authorization>
not found (248.jpg)
webフォームの追加 の手順で「login.aspx」を追加する。
※ASP.NETのデフォルト仕様で、ログインページの名前は「login.aspx」に固定されている。(変更可)
※ASP.NETのデフォルト仕様で、ログインページの名前は「login.aspx」に固定されている。(変更可)
[ツールボックス] -> 「Login」をドラッグアンドドロップで、login.aspx に配置する。
not found (251.jpg)
login.aspx.vb を以下のように変更。
Partial Class login
Inherits System.Web.UI.Page
' 認証判定イベント
Protected Sub Login1_Authenticate(ByVal sender As Object _
, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
If Login1.UserName = "hoge" And Login1.Password = "hoge" Then
' 認証を許可
e.Authenticated = True
End If
End Sub
End Class
実行すると以下のように表示される。
not found (252.jpg)
ユーザー名「hoge」、パスワード「hoge」と入力し、ログインボタンを押す。
not found (253.jpg)
ログイン判定が行われ、default.aspx が表示される。(アドレスバーで確認できる)
※なお、この項のユーザー名とパスワードは定数であるが、DBや外部ファイルから取得したほうが汎用的である。
not found (261.jpg)