「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。 目次 †概要 †
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(authenticationタグのtimeout属性)に記述する。 ログイン画面と認証ロジック †ログイン画面 †認証ロジック(C#の場合) †認証ロジック(コードビハインド) 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); } 詳細 †クロスサイト設定 †1 つのサーバ上 or Web ファーム内のアプリケーション間 †machine keyとCookie認証チケットのcookie名を同じにする。
同一ドメインのサイト間での利用 †上記に加え、enableCrossAppRedirects?要素をtrueに設定することで、
コンテンツごとの制御 †静的コンテンツへの適用 †また、Forms認証はASP.NETの認証基盤機能であるため、
ただし、IIS6.0では、Web.configファイルに以下の例に従った記述が必要になる。 <httpHandlers> <add verb="*" path="*.pdf" type="System.Web.StaticFileHandler" /> <add verb="*" path="*.html" type="System.Web.StaticFileHandler" /> </httpHandlers> ※ 拡張子ごとに、addタグを追加する。
一部コンテンツを認証対象外に設定する。 †以下の設定で認証対象外に設定できる(フォルダやファイル単位で指定できる)。 <!-- Framework ファイルを認証対象外にする --> <location path="Framework/Img"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="Framework/Js"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="common"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>
クロスサイト、クロスドメイン †クロスサイト †ASP.NETのForms認証では、Cookie認証チケットをクロスサイトで使用できる。 クロスドメイン †
ASP.NET Web Forms以外での利用 †ASP.NET Mobile Web †なお、携帯端末用のASP.NET Mobile Web(既にdiscon)の場合、端末によっては、 Web.configのformsタグの定義を次のように、cookieless="UseUri?"と記述する。 <forms name="formauth" ~ cookieless="UseUri"/> この場合、下記に示す様に、ASP.NET Mobile Webにより、URLにForms認証のCookie認証チケットが埋め込まれる。 http://[FQDN名]/[アプリケーション名]/S(SessionID)F(Forms認証の暗号化された認証チケット)/xxx.aspx ASP.NET Mobile Web では、URLに埋め込まれたForms認証のCookie認証チケットなどの情報を上手く引き継ぐために、 ASP.NET MVC における 認証 †ASP.NET Core における 認証 †参考 †ASP.NET でSessionCookie、Cookie認証Ticketを共有する方法 †Tags: :.NET開発, :ASP.NET, :ASP.NET Web Forms, :ASP.NET MVC, :認証基盤, :セキュリティ |