asp.net中的窗體身份驗證(最簡單篇)

? 在創建網站中,常常會使用到身份驗證。asp.net中內置了幾種身份驗證的方式,如Windows、Froms、Passport等。這幾種身份驗證的方式各有不同。一般來說,網站的身份驗證方式都會經過以下幾個步驟:

??? 1、輸入用戶名和密碼,單擊確定按鈕。

??? 2、在后臺判斷用戶名和密碼是否正確,如果錯誤返回提示;如果正確,進入可訪問的頁面。

?

??? 在ASP時代,通常都會在驗證用戶名和密碼是否匹配之后,創建一個Session,然后在每個需要驗證的頁面中判斷Session是否存在,如果存在,則顯示頁面內容;如果不存在,產生提示,并跳轉到登錄頁面。

?

??? 但是,在asp.net時代,這個過程就給大大的減化了,不再需要在每個需要驗證的頁面中去校驗Session,只需要進行如下幾步,就可以完成身份驗證過程。

?

??? 第一步:修改web.config文件。

??? 1、在<system.web>和</system.web>中找到<authentication>節,將其改為“<authentication mode="Forms" />”,其中Forms代表使用表單認證。

??? 2、<system.web>和</system.web>中添加“<authorization><deny users="?"/></authorization>”,其中“<deny users="?"/>”代表拒絕所有的匿名用戶。

?

??? 第二步:創建login.aspx文件。

??? 在經過第一步之后,無論用戶訪問網站中的哪個文件,只要沒有經過身份驗證,asp.net會自動跳轉到login.aspx網頁上,并且在URL中使用ReturnUrl參數來傳遞用戶當前訪問的網頁。

??? 假設用戶沒有經過身份驗證就直接訪問test.aspx文件,那么asp.net會自動跳轉了login.aspx網頁,此時瀏覽器窗口中的地址欄中的URL為:“login.aspx?ReturnUrl=%2ftest.aspx”,因此,可以在身份驗證通過后,再將網頁跳回到ReturnUrl參數指定的網頁上去。

?

??? 第三步:在login.aspx文件中驗證身份。

??? 身份驗證方式比較簡單,一般都是創建一個文本框和一個密碼框,用戶輸入用戶名和密碼后,單擊提交按鈕,則去數據庫中驗證身份,詳細過程就不寫了,在此只要輸入的用戶名為1,密碼為2就認為身份驗證通過。

??? 身份驗證完畢之后,使用FormsAuthentication.SetAuthCookie()為用戶創建一個身份驗證的票據,并將其添加到Cookie中。以后,再訪問網站中的其他網頁,就不需要使用進行身份驗證了。單擊提交按鈕后的代碼如下所示。

????

[c-sharp] view plaincopyprint?
  1. protected?void?Button1_Click(object?sender,?EventArgs?e)??
  2. {??
  3. ????//身份驗證方式,本例中用戶名為1,密碼為2 ??
  4. ????if?(TextBox1.Text?==?"1"?&&?TextBox2.Text?==?"2")??
  5. ????{??
  6. ????????/*?
  7. ?????????*?為用戶名創建一個身份驗證票據,并將其添加到響應的Cookie中?
  8. ?????????*?SetAuthCookie的第一個參數為已驗證的用戶的名稱。?
  9. ?????????*?SetAuthCookie的第二個參數為true時代表創建持久Cookie(跨瀏覽器會話保存的?Cookie),為false則關閉瀏覽器后要重新驗證身份?
  10. ?????????*/??
  11. ????????FormsAuthentication.SetAuthCookie(TextBox1.Text,?false);??
  12. ????}??
  13. ????//如果URL中沒有傳遞ReturnUrl參數,則跳轉到Default.aspx,否則跳轉到ReturnUrl參數值指定的網頁 ??
  14. ????if?(string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))??
  15. ????{??
  16. ????????Response.Redirect("Default.aspx");??
  17. ????}??
  18. ????else??
  19. ????{??
  20. ????????Response.Redirect(Request.QueryString["ReturnUrl"].ToString());??
  21. ????}??
  22. }??

protected void Button1_Click(object sender, EventArgs e) { //身份驗證方式,本例中用戶名為1,密碼為2 if (TextBox1.Text == "1" && TextBox2.Text == "2") { /* * 為用戶名創建一個身份驗證票據,并將其添加到響應的Cookie中 * SetAuthCookie的第一個參數為已驗證的用戶的名稱。 * SetAuthCookie的第二個參數為true時代表創建持久Cookie(跨瀏覽器會話保存的 Cookie),為false則關閉瀏覽器后要重新驗證身份 */ FormsAuthentication.SetAuthCookie(TextBox1.Text, false); } //如果URL中沒有傳遞ReturnUrl參數,則跳轉到Default.aspx,否則跳轉到ReturnUrl參數值指定的網頁 if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"])) { Response.Redirect("Default.aspx"); } else { Response.Redirect(Request.QueryString["ReturnUrl"].ToString()); } }?

?

?

??? 短短三步,就可以進行身份驗證,是不是很COOL?

轉載于:https://www.cnblogs.com/sunshch/archive/2012/05/30/2526900.html

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

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

相關文章

bat文件調用dos命令 (dos淘金)

ECHO命令是大家都熟悉的DOS批處理命令的一條子命令&#xff0c;但它的一些功能和用法也許你并不是全都知道&#xff0c;不信你瞧&#xff1a; 1&#xff0e; 作為控制批處理命令在執行時是否顯示命令行自身的開關 格式&#xff1a;ECHO [ON|OFF] 如果想關閉“ECHO OFF”命令…

response細節點

一、 1&#xff09;、response獲得的流不需要手動關閉&#xff0c;Tomcat容器會幫你自動關閉 2&#xff09;、getWriter和getOutputStream不能同時調用 //error package com.itheima.content;import java.io.IOException; import javax.servlet.ServletException; import java…

Java RandomAccessFile writeBytes()方法與示例

RandomAccessFile類writeBytes()方法 (RandomAccessFile Class writeBytes() method) writeBytes() method is available in java.io package. writeBytes()方法在java.io包中可用。 writeBytes() method is used to write the sequence of bytes (i.e. string) to the file. E…

linux內核設計與實現---下半部和推后執行的工作

下半部和推后執行的工作1 下半部為什么要用下半部下半部的環境內核定時器2 軟中斷軟中斷的實現軟中斷處理程序執行軟中斷使用軟中斷3 tasklettasklet的實現使用taskletksoftirqd4 工作隊列工作隊列的實現工作、工作隊列和工作者線程之間的關系使用工作隊列5 下半部機制的選擇6 …

Jquery對復選框的操作

<from> 你的愛好是?<br/> <input type"checkbox" name"items" value"籃球" />籃球 <input type"checkbox" name"items" value"乒乓球" />乒乓球 <input type"checkbox" na…

HttpServletRequest(request的一些API)

一、request的運行流程 首先&#xff0c;自己寫一個web工程&#xff0c;也就是建一個工程&#xff1b;當把該web工程發布到Tomcat服務器當中&#xff0c;可以讓外界訪問&#xff0c;這就成了一個web應用。 在客戶端輸入一個網站&#xff0c;是web應用資源的地址URL&#xff0c…

DCI:James O. Coplien和Trygve Reenskau提出的新架構方法

http://www.infoq.com/cn/news/2009/05/dci-coplien-reenskau 轉載于:https://www.cnblogs.com/yelinpalace/archive/2009/06/13/1502573.html

Java ObjectStreamField getOffset()方法與示例

ObjectStreamField類的getOffset()方法 (ObjectStreamField Class getOffset() method) getOffset() method is available in java.io package. getOffset()方法在java.io包中可用。 getOffset() method is used to get the offset of this ObjectStreamField field. getOffse…

Mac VSCode配置C語言環境(可以調試)

Mac VSCode配置C語言環境c_cpp_properties.jsontasks.jsonlaunch.json新建一個文件夾&#xff0c;用vscode&#xff0c;然后再新建一個test.c文件。 #include <stdio.h>int main(void) {int a1,b1;int cab;printf("%d\n",c);return 0; }這篇文章說怎么配置c_c…

XmlPullParserException

今天在android的開發中約到一個問題 使用Ksoap2 訪問 WebService 拋出 XmlPullParserException 異常。 在網上淘了一下這個問題 http://www.eoeandroid.com/thread-70527-1-1.html 不能解決我的問題&#xff0c;求解轉載于:https://www.cnblogs.com/pengqinping/archive/2012/0…

vShpere Client在win 7 RC下和2008下 無法正常連接esx主機之解決辦法

vShpere Client在win 7 RC下和2008下 無法正常連接esx主機之解決辦法 在win7下和2008下打開client后連接esx主機會出現2個錯誤提示, 第一個是 第二個是 然后就連接失敗了,開始以為是CC的esx主機安裝有問題,后來找了找,借助了強大google工具,終于找到解決辦法.解決辦法如下: 1.從…

tooctalstring_Java Integer類toOctalString()方法的示例

tooctalstring整數類toOctalString()方法 (Integer class toOctalString() method) toOctalString() method is available in java.lang package. toOctalString()方法在java.lang包中可用。 toOctalString() method is used to represent an octal string of the given parame…

localhost與127.0.0.1之間的關系更改

其實localhost的默認IP地址為127.0.0.1&#xff0c;因為這是一種映射關系。 更改步驟如下&#xff1a; C:\Windows\System32\drivers\etc 下的hosts 打開hosts可以看到 更改即可

基于Hash表的排序--C語言

我們知道&#xff0c;C語言里面是沒有hash表的&#xff0c;但是我們可以用一個結構體表示&#xff0c;對結構體排序&#xff0c;我們可以用qsort排序。 下面我們用一個LeedCode上面的一道題目講解。 347. 前 K 個高頻元素 這個題目是讓我們求解前k個高頻元素&#xff0c;求解思…

ORACLE10g R2及PATH官方下載地址

ORACLE10g R2及PATH官方下載地址 Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit)http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip http://download.oracle.com/otn/nt/oracle10g/102…

[網摘]Javascript中最常用的55個經典技巧

1. οncοntextmenu"window.event.returnValuefalse" 將徹底屏蔽鼠標右鍵<table border οncοntextmenureturn(false)><td>no</table> 可用于Table 2. <body onselectstart"return false"> 取消選取、防止復制 3. οnpaste"…

Java集合unmodifiableMap()方法及示例

集合類unmodifiableMap()方法 (Collections Class unmodifiableMap() method) unmodifiableMap() method is available in java.util package. unmodifiableMap()方法在java.util包中可用。 unmodifiableMap() method is used to get a non-modifiable view of the given Map (…

Linux內核設計與實現---內核同步方法

內核同步方法1 原子操作原子整數操作原子性與順序性的比較原子位操作2 自旋鎖自旋鎖是不可遞歸的其他針對自旋鎖的操作自旋鎖和下半部3 讀-寫自旋鎖4 信號量創建和初始化信號量使用信號量5 讀-寫信號量6 自旋鎖和信號量7 完成變量8 互斥鎖互斥鎖API9 禁止搶占10 順序和屏障1 原…

單擊瀏覽器右上角的X彈出提示窗口

單擊瀏覽器右上角的X彈出提示窗口&#xff0c;簡單實現。 <script language"javascript">window.onunload function () { if (event.clientY < 0 && event.clientX> document.body.scrollWidth) { //event.returnValue …

Java DataOutputStream writeChars()方法及示例

DataOutputStream類writeChars()方法 (DataOutputStream Class writeChars() method) writeChars() method is available in java.io package. writeChars()方法在java.io包中可用。 writeChars() method is used to write the given string as a sequence of characters to th…