票據身份驗證並存入Cookie

2021-10-14 11:00:16 字數 2380 閱讀 8260

總結c#票據身份驗證一般用於登入驗證訪問使用者資訊以及判斷使用者是否登入

**如下(示例):

一般票據訪問是在登入之後進行的操作,所以都是判斷使用者登入成功之後的操作。

首先配置web.config

"forms"

>

"loginname" loginurl=

"/home/login" cookieless=

"usecookies" path=

"/" protection=

"all" timeout=

"30"

/>

<

/authentication>

建立登入檢視模型viewmodel,以及dto檢視模型(模型驗證引用using system.componentmodel.dataannotations;)

建立控制器的登入action

1、判斷模型驗證是否滿足要求

2、通過頁面獲取的檢視模型判斷賬號密碼是否正確,是否能找該使用者資訊(如果找到進行3,否則新增錯誤資訊,返回檢視)

3、獲取返回路徑,如果獲取到了跳到返回路徑對應路徑,否則跳到預設頁面returnurl

4、登入成功則獲取使用者資訊並存入票據(using system.web.security;)

4.1、獲取使用者資料轉成json

4.2、建立票據formsauthenticationticket(對票據進行加密formsauthentication.encrypt)(

4.3、票據加密formsauthentication.encrypt

4.4、建立cookie httpcookie()

4.5、獲取當前http上下文 httpcontext;若為空則丟擲異常(throw new argumentnullexception(「context為空」);)

4.6、寫入cookie(先移除再新增)

//4、登入成功則獲取使用者資訊並存入票據(using system.web.security;)

獲取使用者資料轉成json

string userjson = admindto.

tojson()

;建立票據formsauthenticationticket(對票據進行加密formsauthentication.encrypt)(

formsauthenticationticket ticket = new formsauthenticationticket(2

,"loginname"

, datetime.now, datetime.now.

adddays(1

), false, userjson)

;票據加密formsauthentication.encrypt

var encryptticket = formsauthentication.

encrypt

(ticket)

;建立cookie httpcookie()

;獲取當前http上下文 httpcontext; 若為空則丟擲異常(throw new argumentnullexception("context為空");)

//建立httpcontext上下文物件

寫入cookie(先移除再新增)

;

**如下(示例):

//拿到乙個http上下文

//根據formsauthentication.formscookiename從下文中獲取cookie

頁面例項化上下文user 獲取cookie內容(全域性操作)

var user = user as myformsprincipaldto

;該處使用的url網路請求的資料。

cookie和token身份驗證

http cookie 也叫web cookie或瀏覽器cookie 是伺服器傳送到使用者瀏覽器並儲存在本地的一小塊資料,它會在瀏覽器下次向同一伺服器再發起請求時被攜帶併發送到伺服器上。通常,它用於告知服務端兩個請求是否來自同一瀏覽器,如保持使用者的登入狀態。cookie使基於無狀態的http協議記...

Forms 驗證生成的cookie身份驗證票

問題 在.net框架下建立單一登入web 應用程式,需要實現forms驗證生成的cookie驗證票在各個成員web 應用程式間共用。但生成的cookie票加密後的字串太長,不便於http get方法 暫不使用post方法 的傳輸,然後就使用了 passportidentity.compress方法壓...

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...