.NET Forms身份驗證

.NET表單身份驗證

ASP.NET Forms 身份驗證的簡單實現:1)在Web.config文件中配置應用程序使用 Forms 身份驗證;2)創建登陸頁面,將用戶身份驗證票證添加到Cookie集合。

?????? 1.配置文件中設置為Forms驗證
?? <authentication?mode="Forms">
??????
<forms?loginUrl="NetFromwork/FormLogin.aspx"?defaultUrl="NetFromwork/FormLogin.aspx"?name=".ASPNETFORMSTEST"?protection="All"?timeout="20"?></forms>
???
</authentication>
???
<authorization>
??????
<deny?users="?"/>
???
</authorization>

?????? 2.驗證用戶合法后,將身份驗證票證寫入Cookie集合
????string?userName?=?"Jimmy";
????
//Create?ticket
????FormsAuthenticationTicket?ticket?=?new?FormsAuthenticationTicket(1,?userName,?DateTime.Now,?DateTime.Now.AddMinutes(1),?false,?"");
????
//Encrypt?the?ticket.
????String?encTicket?=?FormsAuthentication.Encrypt(ticket);
????
//Create?the?cookie.
????Response.Cookies.Add(new?HttpCookie(FormsAuthentication.FormsCookieName,?encTicket));
????
//Redirect?back?to?default?or?original?URL.
????FormsAuthentication.RedirectFromLoginPage(userName,?true);

?????? 上述代碼已經實現了簡單的Forms身份驗證功能。接下來我們看看票據信息構造函數FormsAuthenticationTicket()和用戶重定向函數RedirectFromLoginPage()原型:
函數FormsAuthenticationTicket()原型
????????//
????????
//?摘要:
????????
//?????使用?cookie?名、版本、目錄路徑、發布日期、過期日期、持久性以及用戶定義的數據初始化?System.Web.Security.FormsAuthenticationTicket
????????
//?????類的新實例。
????????
//
????????
//?參數:
????????
//???version:
????????
//?????票證的版本號。
????????
//
????????
//???name:
????????
//?????與身份驗證票關聯的用戶名。
????????
//
????????
//???userData:
????????
//?????存儲在票證中的用戶特定的數據。
????????
//
????????
//???isPersistent:
????????
//?????如果票證將存儲在持久性?Cookie(跨瀏覽器會話保存),則為?true;否則為?false。如果該票證存儲在?URL?中,將忽略此值。
????????
//
????????
//???issueDate:
????????
//?????票證發出時的本地日期和時間。
????????
//
????????
//???cookiePath:
????????
//?????票證存儲在?Cookie?中時的路徑。
????????
//
????????
//???expiration:
????????
//?????票證過期時的本地日期和時間。
????????public?FormsAuthenticationTicket(int?version,?string?name,?DateTime?issueDate,?DateTime?expiration,?bool?isPersistent,?string?userData,?string?cookiePath);
函數RedirectFromLoginPage()原型
?//
????????
//?摘要:
????????
//?????將經過身份驗證的用戶重定向回最初請求的?URL?或默認?URL。
????????
//
????????
//?參數:
????????
//???userName:
????????
//?????經過身份驗證的用戶名。
????????
//
????????
//???createPersistentCookie:
????????
//?????若要創建持久?Cookie(跨瀏覽器會話保存的?Cookie),則為?true;否則為?false。
????????public?static?void?RedirectFromLoginPage(string?userName,?bool?createPersistentCookie);

?????? 論壇常見的登陸有效期功能是怎么實現的呢?是通過設置哪些參數實現的呢?不禁有些迷茫,涉及到登陸有效期的參數有如下幾個:函構造數FormsAuthenticationTicket()中的isPersistentexpiration,函數RedirectFromLoginPage()中的createPersistentCookie,配置文件中還有timeout屬性,究竟要怎么設置才能實現“登陸一小時,一天,一個月,永久,瀏覽器進程”功能呢?

?????? 下面談談我對這些參數的理解,通過查找網上資料,MSDN和程序測試而來,有理解錯誤的地方歡迎大家指正。

???????1.關于持久Cookie,并不是說isPersistent=True或者createPersistentCookie=True時,就能夠保持永久登陸狀態,持久Cookie解釋成跨瀏覽器會話保存的Cookie更合適。當設置為True時,不同瀏覽器進程之間可以共享該Cookie,也就是說在一個IE中登陸后,在另一個IE中打開還保持登陸狀態。

?????? 2.關于函數RedirectFromLoginPage(),MSDN上解釋是這樣的“如果 CookiesSupported 屬性為 true,并且 ReturnUrl 變量位于當前應用程序中,或者 EnableCrossAppRedirects 屬性為 true,則 RedirectFromLoginPage 方法將發出身份驗證票證并使用 SetAuthCookie 方法將其置于默認 Cookie 中。”
???????可見,在執行函數RedirectFromLoginPage()時,會覆蓋掉FormsAuthenticationTicket實例的票據信息,所以第二部分代碼中,不該調用該函數,而應該用下面的代碼代替:
????string?userName?=?"Jimmy";
????
//Create?ticket
????FormsAuthenticationTicket?ticket?=?new?FormsAuthenticationTicket(1,?userName,?DateTime.Now,?DateTime.Now.AddMinutes(1),?false,?"");
????
//Encrypt?the?ticket.
????String?encTicket?=?FormsAuthentication.Encrypt(ticket);
????
//Create?the?cookie.
????Response.Cookies.Add(new?HttpCookie(FormsAuthentication.FormsCookieName,?encTicket));
????
//Redirect?back?to?default?or?original?URL.
????Response.Redirect(FormsAuthentication.GetRedirectUrl(userName,true?));? //代替RedirectFormLoginPage

?????? 3.關于登陸有效時間,涉及到登陸時間的只有構造函數FormsAuthenticationTicket()的參數expiration票據過期時間和配置文件中的timeout屬性了,這兩個有什么關系呢?----票據的有效時間是由expiration屬性決定的,而timeout只有當expiration屬性沒有顯示設置的時候才生效。
摘自:http://www.cnblogs.com/freshman0216/archive/2008/06/17/1224215.html
參考:http://www.cnblogs.com/liuqhui/archive/2008/07/20/1246987.html

轉載于:https://www.cnblogs.com/besuccess/articles/3487535.html

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

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

相關文章

Oracle SQL篇(三)Oracle ROWNUM 與TOP N分析

首先我們來看一下ROWNUM&#xff1a;含義解釋&#xff1a;1、rownum是oracle為從查詢返回的行的編號&#xff0c;返回的第一行分配的是1&#xff0c;第二行是2&#xff0c;依此類推。這是一個偽列&#xff0c;可以用于限制查詢返回的總行數。2、rownum不能以任何基表的名稱作為…

C++ Primer 第10章 pair類型

//10.2.cpp //至少使用三種方法創建pair對象。 //編寫三個版本的程序&#xff0c;分別采用不同的方法來創建pair對象 //方法1&#xff1a;在定義pair對象時提供初始化式來創建pair對象#include<iostream> #include<vector> #include<utility> #include<st…

計算機對口升學可以報考的學校,對口升學可以報考的學校都在這里,趕快來收藏吧...

對口升學指對口高考&#xff0c;在平常又叫對口單招&#xff0c;對口升學&#xff0c;是從中等職業學校畢業生招生&#xff0c;強調中等職業學校畢業生對口升高職的專業技能考試&#xff0c;以專業技能成績為主要錄取依據的招生辦法。報名條件具有正式學籍的中等職業學校畢業生…

Visual Studio 常用快捷鍵 (二)

想不到上一篇 【Visual Studio 常用快捷鍵】 受這么多人的歡迎。看來大家對Visual Studio的用法非常感興趣。 接下來我準備寫一個 “Visual Studio使用技巧 ” 一個系列的博客。 希望對大家有所幫助 本篇繼續介紹幾個常用的快捷鍵 閱讀目錄 按兩下Tab鍵回退到光標的上一次位置…

js 兼容event.target

function getEventTarget(e){ewindow.event||e;return e.srcElement||e.target; }轉載于:https://www.cnblogs.com/manong13/archive/2012/02/23/2364443.html

企業郵箱收發信息服務器怎么設置,網易閃電郵企業郵箱收發設置教程(IMAP)...

網易閃電郵企業郵箱收發設置教程(IMAP)發表時間 2019-05-30人氣 73(1)啟動閃電郵后&#xff0c;點擊“郵箱---新建郵箱賬戶”菜單&#xff0c;如下圖&#xff1a;(2)輸入“郵箱地址和密碼”&#xff0c;點擊下拉箭頭繼續設置&#xff0c;設置完成后點擊下一步&#xff0c;如下圖…

訂餐系統之Excel批量導入

批量導入現在基本已經成為各類系統的標配了&#xff0c;當前&#xff0c;我們訂餐系統也不例外&#xff0c;什么商家呀、商品呀、優惠碼之類的&#xff0c;都少不了。畢竟嘛&#xff0c;對非開發人員來說&#xff0c;看到Excel肯定比看到很多管理系統還是要親切很多的。這里&am…

需要忽略的一些信號

程序往往會因為收到一些信號導致退出&#xff0c;但很多時候并不是我們想要的&#xff0c;比如往一個已經關閉的socket連接發送數據就會受到SIGPIPE,此信號默認會退出程序&#xff0c;但其實大部分時候我們并不想這么做&#xff0c;所以需要忽略一些信號。常見的有 SIGPIPE SIG…

獲取網頁中選中的文字

獲取頁面中選中的文字 //獲取頁面中選中的文字 function getSelectedText(){if(window.getSelection){ //FFreturn window.getSelection().toString();}else{ //IEreturn document.selection.createRange().text;} }設置或獲取輸入框的選中文字 //設置文字選中 function setSe…

云服務器和獨享虛擬主機的區別,獨享虛擬主機和云服務器的幾大區別

獨享虛擬主機和云服務器的幾大區別發布時間&#xff1a;2020-10-15 19:05:51來源&#xff1a;億速云閱讀&#xff1a;99作者&#xff1a;Leah欄目&#xff1a;云計算今天就跟大家聊聊有關獨享虛擬主機和云服務器的幾大區別&#xff0c;可能很多人都不太了解&#xff0c;為了讓大…

oracle數據庫之數據導入問題

2019獨角獸企業重金招聘Python工程師標準>>> 在oracle數據庫中建立好數據庫以后&#xff0c;需要使用PLSQL進行用戶創建&#xff0c;打開PLSQL&#xff0c;使用時需要使用最高權限進入PLSQL。如下圖&#xff1a; 不需要使用用戶名和密碼&#xff0c;進入數據庫操作。…

轉向ARC的說明

轉自hherima的博客原文&#xff1a;Transitioning to ARC Release Notes&#xff08;蘋果官方文檔&#xff09; ARC是一個編譯器特征&#xff0c;它提供了對OC對象自動管理內存。ARC讓開發者專注于感興趣的代碼和對象的關系&#xff0c;而不用考慮對象的retain和release。 概要…

ubuntu11.10 samba服務器配置

安裝samba可以實現linux下文件和window共享&#xff0c;這樣window下就可以操作linux的文件了。 1、關閉LINUX防火墻 sudo ufw disable 注&#xff1a;ufw是linux下的防火墻操作命令&#xff0c;相關的操作可以查看命令幫助 2、先卸載samba-common sudo ap…

win服務器創建文件夾命令,Win10系統如利用命令提示符或WSL創建任意大小空白文件...

要測試網盤或服務器的上傳&#xff0c;下載速度&#xff0c;需要指定大小的文件用來測試。創建的空白文件雖然沒有任何內容&#xff0c;但是有大小&#xff0c;可以用來測試實際傳輸速度、覆蓋已刪除數據等用途。這篇文章是本站教大家在Win10中用命令或WSL創建任意大小空白文件…

計算UILabel帶行間距的行高

為什么80%的碼農都做不了架構師&#xff1f;>>> //設置lab的行間距 NSMutableAttributedString *attributedString [[NSMutableAttributedString alloc] initWithString:_doubletStr]; NSMutableParagraphStyle *paragraphStyle [[NSMutableParagraphStyle alloc…

FORM級別和數據庫級別的Trace

&#xfeff;&#xfeff;metalink上的文章較全的&#xff0c;中文的可參考我的博客EBS開發技術之trace http://blog.csdn.net/cai_xingyun/article/details/17250971 This document provides instructions on how to create and retrieve Forms and Database level SQL trace…

關于farpoint公司的控件:SPREAD for .NET Windows Forms Ed.的一些簡單方法.

View Code using System;using FarPoint.Win.Spread ;using System.Drawing;using System.Windows.Forms;namespace DFO010{/// <summary>/// Fpspread的相關函數.2006/4/12 制作:Chouka/// </summary> public class Classspd {public Classspd() { }/// <su…

永遠的beyond!(4 days left to get back touch)

永遠的beyond!轉載于:https://www.cnblogs.com/LaoLuo/archive/2012/03/05/2380954.html

串行總線協議筆記

I2C --INTER-IC串行總線的縮寫&#xff0c;是PHILIPS公司推出的芯片間串行傳輸總線。它以1根串行數據線&#xff08;SDA&#xff09;和1根串行時鐘線&#xff08;SCL&#xff09;實 現了雙工的同步數據傳輸。具有接口線少&#xff0c;控制方式簡化&#xff0c;器件封裝形式小&a…

ibm服務器和微軟,微軟與IBM不得不說的事情

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓在Windows 3.x 開 始 為 世 人 接 受 之 初&#xff0c; 個 人 電 腦 的 操 作 系 統 中 唯 一 可 以 與Windows 操 作 系 統 分 庭 抗 禮 的 就 是OS/2。 這 套 原 先 是 微 軟 與IBM 合 作 生 產 的 操 作 系 統&#xff0c; 由 …