FORMS検証


構成アイテムの説明:


     


以上のコードはデフォルト設定を使用しています.言い換えれば、どの構成プロパティが上記のコードと一致しているか、そのプロパティは省略できます.例えば.次に、さまざまなプロパティについて説明します.
l name——Cookieの名前.Forms Authenticationでは、認証後にユーザー証明書をCookieに配置する可能性があります.nameプロパティがCookieの名前を決定します.ここを通ってFormsCookieNameプロパティでは、この構成値を取得できます(FromsAuthenticationクラスについては後述します).
l loginUrl——ログインページのURL.ここを通ってこの構成値は、LoginUrlプロパティから取得できます.それが呼び出された時RedirectToLoginPage()メソッドの場合、クライアント要求はその属性によって指定されたページにリダイレクトされます.loginUrlのデフォルト値は「login.aspx」で、属性値が指定されていなくてもASP.NETはサイトのルートディレクトリの下でloginという名前を探してみます.aspxのページ.
l defaultUrl-デフォルトページのURL.ここを通ってDefaultUrlプロパティは、この構成値を取得します.
l protection--Cookieの保護モードで、All(暗号化とデータ検証を同時に行う)、Encryption(暗号化のみ)、Validation(データ検証のみ)とNoneを含む値を取得できます.セキュリティのために、このプロパティは通常Noneに設定されません.
l timeout-Cookieの期限切れ.
l path——Cookieの経路.ここからはFormsCookiePathプロパティは、この構成値を取得します.
l requireSSL--Forms Authenticationを行う場合、サーバと対話してSSLを使用する必要があるかどうか.ここからはRequireSSLプロパティは、この構成値を取得します.
l slidingExpiration--「フレックス期限切れ時間」を有効にするかどうか、この属性がfalseに設定されている場合、初回検証後からtimeout時間が経過するとCookieが期限切れになります.このプロパティがtrueの場合、前回のリクエストからtimeout時間が経過してから期限が切れます.これは、初回検証後、timeout時間ごとに少なくとも1つのリクエストが送信されることを保証すると、Cookieは期限切れになりません.ここを通ってこの設定値は、SlidingExpirationプロパティから取得できます.
l enableCrossAppRedirects--認証を行ったユーザーを他のアプリケーションにリダイレクトできるかどうか.ここを通ってEnableCrossAppRedirectsプロパティでは、この構成値を取得できます.セキュリティを考慮すると、通常、このプロパティはfalseに設定されます.
l cookieless--CookieとCookieの動作を使用するかどうかを定義します.Forms Authenticationは、要求を送信するたびにブラウザがサーバに提供するCookieを使用して、セッションにユーザー認証情報を保存する2つの方法を採用することができます.もう1つの方法は、URL内の追加のクエリ文字列としてユーザ認証情報をサーバに渡すURIを使用することである.この属性には、UseCookies(いつでもCookieを使用)、UseUri(Cookieを使用しない、URIのみを使用する)、AutoDetect(デバイスとブラウザを検出し、デバイスがCookieをサポートし、ブラウザでCookieを有効にした場合にのみCookieを使用する)、UseDeviceProfile(デバイスのみを検出し、デバイスがCookieをサポートするかどうかにかかわらずCookieを使用する)の4つの値があります.ここを通ってCookieModeプロパティでは、この構成値を取得できます.ここを通ってCookiesSupportedプロパティは、現在のリクエストに対してCookieを使用してユーザー証明書を渡すかどうかを取得します.
l domain-Cookieのドメイン.ここを通ってCookieDomainプロパティでは、この構成値を取得できます.
[HttpPost]
public ActionResult LogOn(LogOnModel model)
{
  if (ModelState.IsValid)
  {

    if (model.UserName == "username" && model.Password == "password")
    {
      FormsAuthentication.RedirectFromLoginPage(model.UserName, model.RememberMe);
    }
  }

  return View("logon failed!");
}
public ActionResult LogOff()
{
      //FormsService.SignOut();
      FormsAuthentication.SignOut();

      return RedirectToAction("Index", "Home");
}