FormsAuthentication使用指南,實現登錄

一般情況下,在我們做訪問權限管理的時候,會把用戶的正確登錄后的基本信息保存在Session中,以后用戶每次請求頁面或接口數據的時候,拿到Session中存儲的用戶基本信息,查看比較他有沒有登錄和能否訪問當前頁面。
Session的原理,也就是在服務器端生成一個SessionID對應了存儲的用戶數據,而SessionID存儲在Cookie中,客戶端以后每次請求都會帶上這個Cookie,服務器端根據Cookie中的SessionID找到存儲在服務器端的對應當前用戶的數據。
FormsAuthentication是微軟提供給我們開發人員使用,做身份認證使用的。通過該認證,我們可以把用戶Name 和部分用戶數據存儲在Cookie中,通過基本的條件設置可以,很簡單的實現基本的身份角色認證。

配置項描述:

<authentication mode="Forms"><formsname=".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" />。下面依次介紹一下各種屬性:

  1. name----Cookie的名字。Forms Authentication可能會在驗證后將用戶憑證放在Cookie中,name屬性決定了該Cookie的名字。通過FormsAuthentication.FormsCookieName屬性可以得到該配置值(稍后介紹FromsAuthentication類)。
  2. loginUrl---登錄頁的URL。通過FormsAuthentication.LoginUrl屬性可以得到該配置值。當調用FormsAuthentication.RedirectToLoginPage()方法時,客戶端請求將被重定向到該屬性所指定的頁面。loginUrl的默認值為“login.aspx”,這表明即便不提供該屬性值,ASP.NET也會嘗試到站點根目錄下尋找名為login.aspx的頁面。
  3. defaultUrl--默認頁的URL。通過FormsAuthentication.DefaultUrl屬性得到該配置值。
  4. protection--Cookie的保護模式,可取值包括All(同時進行加密和數據驗證)、Encryption(僅加密)、Validation(僅進行數據驗證)和None。為了安全,該屬性通常從不設置為None。
  5. timeout---Cookie的過期時間。
  6. path-----Cookie的路徑。可以通過FormsAuthentication.FormsCookiePath屬性得到該配置值。
  7. requireSSL——在進行Forms Authentication時,與服務器交互是否要求使用SSL。可以通過FormsAuthentication.RequireSSL屬性得到該配置值。
  8. slidingExpiration——是否啟用“彈性過期時間”,如果該屬性設置為false,從首次驗證之后過timeout時間后Cookie即過期;如果該屬性為true,則從上次請求該開始過timeout時間才過期,這意味著,在首次驗證后,如果保證每timeout時間內至少發送一個請求,則Cookie將永遠不會過期。通過FormsAuthentication.SlidingExpiration屬性可以得到該配置值。
  9. enableCrossAppRedirects——是否可以將以進行了身份驗證的用戶重定向到其他應用程序中。通過FormsAuthentication.EnableCrossAppRedirects屬性可以得到該配置值。為了安全考慮,通常總是將該屬性設置為false。
  10. 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傳遞用戶憑證。
  11. 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");
}

  

轉載于:https://www.cnblogs.com/wolfocme110/p/5711423.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372588.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java開發高性能網站需要關注的事

轉自&#xff1a;http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒體舉辦的業內技術大會讓很多網站都在披露自己的技術內幕與同行們分享&#xff0c;大到facebook&#xff0c;百度&#xff0c;小到剛起步的網站。facebook&#xff0c;百度之類的…

mysql到oracle數據遷移,mysql數據遷移到oracle

mysql: utf-8字符集oracle: Al32UTF8步驟&#xff1a;1. 從mysql導出csv格式數據&#xff0c;導出時設置default_character_setgbk&#xff0c;否則會亂碼2.上傳至linux服務器(oracle服務器),用以下命令將windows的/r/n換成/r:sed -i "s//r//g" file3.將gbk編碼轉為u…

測試抽象類和模板方法模式

摘自Wikipedia&#xff0c;“模板方法定義了算法的程序框架。 子類可以覆蓋一個或多個算法步驟&#xff0c;以允許不同的行為&#xff0c;同時確保仍然遵循總體算法。” 通常&#xff0c;此模式由兩個或多個類組成&#xff0c;一個是提供模板方法&#xff08;非抽象&#xff09…

LoadRunner性能測試結果計數器指標說明

LoadRunner性能測試結果計數器指標說明 轉載2015-09-23 09:57:13標簽&#xff1a;loadrunner計數器針對性能測試結果分析過程中&#xff0c;面對大量的測試數據&#xff0c;反而感覺無從下手分析。今天我們就Windows操作系統計數器中的個別被監控對象進行簡單的說明。 Memory: …

Elasticsearch之需要注意的問題(es和jdk版本)

&#xff08;1&#xff09;在使用java代碼操作es集群的時候 要保證本地使用的es的版本和集群上es的版本保持一致。 &#xff08;2&#xff09;保證集群中每個節點的JDK版本和es基本配置一致 這個很簡單&#xff0c;不多說。 &#xff08;3&#xff09;es集群中jdk版本不一致 …

oracle視圖查詢數據慢,8i查詢DBA_FREE_SPACE視圖極慢的問題

還是那套古老的8.1.7.4&#xff0c;在該系統上檢查表空間使用情況的SQL運行緩慢&#xff0c;其SQL如下:SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) &q…

bzoj 4332:JSOI2012 分零食

描述 這里是歡樂的進香河&#xff0c;這里是歡樂的幼兒園。 今天是2月14日&#xff0c;星期二。在這個特殊的日子里&#xff0c;老師帶著同學們歡樂地跳著&#xff0c;笑著。校長從幼兒園旁邊的小吃店買了大量的零食決定分給同學們。聽到這個消息&#xff0c;所有同學都安安靜靜…

并發–順序線程和原始線程

我不久前參與了一個項目&#xff0c;該項目的報告流程如下&#xff1a; 用戶會要求舉報 報告要求將被翻譯成較小的部分 每個零件的報告將基于零件/節的類型由報告生成器生成 組成報告的各個部分將重新組合成最終報告&#xff0c;并返回給用戶 我的目標是展示如何從錯誤的實…

借貸期末余額 oracle,應交稅費期末余額分別在借貸方表示什么

應交稅費是負債類科目&#xff0c;有時期末余額會在借方&#xff0c;有時會在貸方。因此&#xff0c;小伙伴們在實際的賬務處理工作中&#xff0c;一定要弄清楚兩者的含義。為了幫助大家進行有更進一步的理解&#xff0c;小編再次匯總了應交稅費期末余額分別在借貸方表示什么的…

Android學習——ListView的緩存機制

在使用ListView的時候&#xff0c;需要加載適配器和數據源&#xff0c;這篇文章主要介紹一下ListView的使用以及利用ListView的緩存機制來減少系統的初始化時間。 ListView的使用 ListView和ViewPager很類似&#xff0c;首先在ArrayList中存放數據源&#xff0c;并把它作為Adap…

C#基礎 特殊集合(棧集合、隊列集合、哈希表集合)

一、 棧: Stank,先進先出&#xff0c;一個一個賦值&#xff0c;一個一個取值&#xff0c;按照順序。 .count 取集合內元素的個數 .push 將元素一個一個推入集合 .pop 將元素一個一個彈出集合 .peek 查看集合中的一個元素 .clear 清空集合 Stack stnew Stack…

OSGi環境中的Servlet基本身份驗證

您首先需要獲得對OSGI HTTP Service的引用。 您可以通過聲明性服務來做到這一點。 這篇文章將集中在獲得對HTTP服務的引用之后的步驟。 注意&#xff1a;此職位的完整課程位于此處 通過OSGI HTTP Service注冊Servlet時&#xff0c;它為您提供了提供HTTPContext實現的選項。 htt…

linux夏令時配置文件,Linux夏令時是怎么調整的?

以法國巴黎為例&#xff1a;root121 zoneinfo]# ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime[root121 zoneinfo]# date2015年 10月 13日 星期二 03:45:09 CEST[root121 zoneinfo]# date -RTue, 13 Oct 2015 03:45:31 0200[root121 zoneinfo]# zdump -v /etc/localt…

Kali Linux滲透基礎知識整理(二)漏洞掃描

Kali Linux滲透基礎知識整理系列文章回顧 漏洞掃描 網絡流量NmapHping3NessuswhatwebDirBusterjoomscanWPScan網絡流量 網絡流量就是網絡上傳輸的數據量。 TCP協議 TCP是因特網中的傳輸層協議&#xff0c;使用三次握手協議建立連接。當主動方發出SYN連接請求后&#xff0c;等待…

嵌入式軟件設計第09實驗報告

學號&#xff1a;140201133 姓名&#xff1a;李宇昕 組別&#xff1a;第3組 實驗地點&#xff1a;D19 一、實驗目的&#xff1a; 1.熟悉WWW技術中的SSI&#xff08;Server Side Include&#xff09;技術。 2.學會使用SSI技術編寫代碼把當前開發板內…

TeamCity工件:HTTP,Ant,Gradle和Maven

您可以通過幾種方式檢索TeamCity工件&#xff1f; 我說有很多選擇 &#xff01; 如果您使用的是Java構建工具&#xff0c;那么可以使用簡單的HTTP請求&#xff0c;Ant Ivy&#xff0c;Gradle和Maven下載和使用TeamCity構建配置生成的二進制文件。 怎么樣&#xff1f; 繼續閱讀…

linux中hadoop命令大全,hadoop常用命令

啟動Hadoop進入HADOOP_HOME目錄。執行sh bin/start-all.sh關閉Hadoop進入HADOOP_HOME目錄。執行sh bin/stop-all.sh1、查看指定目錄下內容hadoop dfs –ls [文件目錄]eg: hadoop dfs –ls /user/wangkai.pt2、打開某個已存在文件hadoop dfs –cat [file_path]eg:hadoop dfs -ca…

Uber從Postgres切換到MySQL

Uber工程師在官方博客上描述了他們為什么要從 Postgres 切換到 MySQL 數據庫。Uber的早期架構是由 Python編寫的后端應用構成&#xff0c;使用了 Postgres 數據庫。但此后&#xff0c;Uber的架構發生了顯著的改變&#xff0c;轉變到了微服務模型和新的數據平臺。以前他們使用 P…

AutoCAD如何方便截圖放到Word文檔,改成白底黑字

將模型視圖切換到布局2即可 比如下圖所示的效果 先回到模型視圖把所有線條顏色都改成白色&#xff0c;然后添加適當的標注&#xff08;比如要受力分析&#xff0c;則在CAD中繪制箭頭也很方便的&#xff09;&#xff0c;文字說明。然后切換到布局2就OK 可以截圖了。 轉載于:http…

在Hotspot JVM中跟蹤過多的垃圾回收

由于內存泄漏或其他內存問題&#xff0c;經常導致應用程序凍結&#xff0c;僅使垃圾收集器&#xff08;GC&#xff09;進程運行失敗&#xff0c;試圖釋放一些空間。 直到看門狗&#xff08;或沮喪的管理員&#xff09;重新啟動應用程序并且問題從未解決之前&#xff0c;這種情況…