- 追加された行はこの色です。
- 削除された行はこの色です。
Open棟梁Project - マイクロソフト系技術情報 Wiki
* 目次 [#j2f5dc70]
#contents
*概要 [#c361fa3a]
Forms認証とは、Formにユーザアカウント情報を入力してWeb/APサーバで認証をする認証方式の呼称である。ASP.NET Forms認証は、下記の実装のみで暗号化されたCookie認証チケットを使用した認証基盤機能を利用できるため、Webアプリケーションの認証基盤として利用される機会が非常に多い。
-web.config上の設定
-ログイン画面と認証ロジック
<authentication mode="Forms">
<forms name="formauth" loginUrl="(ログイン画面のURL)" defaultUrl="(メニュー画面のURL)" protection="All" timeout="60" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" domain=""></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
図 web.configの設定
ログイン画面(*.aspx)
認証ロジック(コードビハインド)
protected void Button1_Click(object sender, EventArgs e)
{
// ユーザ名、パスワードを取得。
string userName = this.TextBox1.Text
string passWord = this.TextBox2.Text
// 任意の認証ロジック(userName、passWordからユーザを認証する)。
// 認証か完了した場合、認証チケットを生成し、元のページにRedirectする。
// 第2引数は、クライアントがCookieを永続化(ファイルとして保存)するかどうか。
// を設定する引数であるが、セキュリティを考慮して、falseの設定を勧める。
FormsAuthentication.RedirectFromLoginPage(userName, false);
}
図 ログイン画面と認証ロジック(C#の場合)
ASP.NET Forms認証は、ASP.NET1.xでは、単一Webサイト内でのみ利用可能であったが、ASP.NET2.0から複数のWebサイト間で「Cookie認証チケット」を共有する仕組みが用意された。これにより、Webサイト間のシングル サイン オンも可能になった。
複数のWebサイト間でForms認証の「Cookie認証チケット」を共有するには、.NETの設定にあるenableCrossAppRedirects要素をtrueに設定する 。
-MSDNライブラリ > .NET Frameworkの全般リファレンス > authenticationのforms要素(ASP.NET設定スキーマ)~
http://msdn.microsoft.com/ja-jp/library/1d3t3c61.aspx
また、Forms認証はASP.NETの認証基盤機能であるため、動的コンテンツ(aspx)以外に利用できないと思われがちだが、設定によって静的コンテンツにも適用できるようになる 。
-@IT > .NET TIPS > [ASP.NET].htmlや.pdfファイルをフォーム認証やロギングの対象にするには?~
http://www.atmarkit.co.jp/fdotnet/dotnettips/114iisrelate/iisrelate.html
ただし、IIS6.0では、web.configファイルに以下の例に従った記述が必要になる。
<httpHandlers>
<add verb="*" path="*.pdf" type="System.Web.StaticFileHandler" />
<add verb="*" path="*.html" type="System.Web.StaticFileHandler" />
</httpHandlers>
※ 拡張子ごとに、addタグを追加する。
-MSDNライブラリ >.NET Frameworkの全般リファレンス > httpHandlers要素 (ASP.NET設定スキーマ)~
http://msdn.microsoft.com/ja-jp/library/bya7fh0a.aspx