標籤:style blog http io ar color os 使用 sp
配置項描述:
<authentication mode="Forms">
<forms
name=".ASPXAUTH"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="false"
slidingExpiration="false"
enableCrossAppRedirects="false"
cookieless="UseDeviceProfile"
domain=""
/>
</authentication>
以上代碼使用的均是預設設定,換言之,如果你的哪項配置屬性與上述代碼一致,則可以省略該屬性例如<forms name="MyAppAuth" />。下面依次介紹一下各種屬性:
l name——Cookie的名字。Forms Authentication可能會在驗證後將使用者憑證放在Cookie中,name屬性決定了該Cookie的名字。通過FormsAuthentication.FormsCookieName屬性可以得到該配置值(稍後介紹FromsAuthentication類)。
l loginUrl——登入頁的URL。通過FormsAuthentication.LoginUrl屬性可以得到該配置值。當調用FormsAuthentication.RedirectToLoginPage()方法時,用戶端請求將被重新導向到該屬性所指定的頁面。loginUrl的預設值為“login.aspx”,這表明即便不提供該屬性值,ASP.NET也會嘗試到網站根目錄下尋找名為login.aspx的頁面。
l defaultUrl——預設頁的URL。通過FormsAuthentication.DefaultUrl屬性得到該配置值。
l protection——Cookie的保護模式,可取值包括All(同時進行加密和資料驗證)、Encryption(僅加密)、Validation(僅進行資料驗證)和None。為了安全,該屬性通常從不設定為None。
l timeout——Cookie的到期時間。
l path——Cookie的路徑。可以通過FormsAuthentication.FormsCookiePath屬性得到該配置值。
l requireSSL——在進行Forms Authentication時,與伺服器互動是否要求使用SSL。可以通過FormsAuthentication.RequireSSL屬性得到該配置值。
l slidingExpiration——是否啟用“彈性到期時間”,如果該屬性設定為false,從首次驗證之後過timeout時間後Cookie即到期;如果該屬性為true,則從上次請求該開始過timeout時間才到期,這意味著,在首次驗證後,如果保證每timeout時間內至少發送一個請求,則Cookie將永遠不會到期。通過FormsAuthentication.SlidingExpiration屬性可以得到該配置值。
l enableCrossAppRedirects——是否可以將以進行了身分識別驗證的使用者重新導向到其他應用程式中。通過FormsAuthentication.EnableCrossAppRedirects屬性可以得到該配置值。為了安全考慮,通常總是將該屬性設定為false。
l cookieless——定義是否使用Cookie以及Cookie的行為。Forms Authentication可以採用兩種方式在會話中儲存使用者憑證資訊,一種是使用Cookie,即將使用者憑證記錄到Cookie中,每次發送請求時瀏覽器都會將該Cookie提供給伺服器。另一種方式是使用URI,即將使用者憑證當作URL中額外的查詢字串傳遞給伺服器。該屬性有四種取值——UseCookies(無論何時都使用Cookie)、UseUri(從不使用Cookie,僅使用URI)、AutoDetect(檢測裝置和瀏覽器,只有當裝置支援Cookie並且在瀏覽器中啟用了Cookie時才使用Cookie)和UseDeviceProfile(只檢測裝置,只要裝置支援Cookie不管瀏覽器是否支援,都是用Cookie)。通過FormsAuthentication.CookieMode屬性可以得到該配置值。通過FormsAuthentication.CookiesSupported屬性可以得到對於當前請求是否使用Cookie傳遞使用者憑證。
l domain——Cookie的域。通過FormsAuthentication.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"); }
FormsAuthentication實現登入(轉)