ASP.NET窗體身份驗(yàn)證詳解
asp.net的身份驗(yàn)證類型如下:

在我們實(shí)際的工作中,froms身份驗(yàn)證用的還是比較多的,我們接下來詳細(xì)說一下:
做為web開發(fā)的程序員,我想登錄窗體是接觸的太多了??墒?,我發(fā)現(xiàn)有的程序員在對(duì)身份驗(yàn)證的時(shí)候是把驗(yàn)證的用戶名保存在一個(gè)session里的,然后進(jìn)入系統(tǒng)的每個(gè)頁面都去驗(yàn)證session是否為空,如果不為空那么就response.redirect("......aspx")。
我認(rèn)為這種方法相對(duì)于asp.net提供的form身份驗(yàn)證來說是不足的,首先,就是增加代碼量,因?yàn)槲覀冊(cè)诿總€(gè)頁面都要驗(yàn)證一下session是否存在;其次,session是存儲(chǔ)在服務(wù)器內(nèi)存中,我認(rèn)為如果經(jīng)常使用session勢(shì)必會(huì)拖慢服務(wù)器的速度。而form身份驗(yàn)證則不同,它是把數(shù)據(jù)保存在cookie中的,所以,可以減輕服務(wù)器的壓力。
舉例一:
在項(xiàng)目中添加兩個(gè)頁面:login.aspx(用來做登錄頁面)和main.aspx(主界面)
如果我們添加了from身份驗(yàn)證的話,那么當(dāng)然我們首先要先設(shè)置不允許匿名訪問網(wǎng)站,接著我們把通過身份驗(yàn)證的用戶添加到cookie中,web配置文件如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms name="save" loginUrl="login.aspx" protection="All">
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
說明:

進(jìn)行設(shè)置后,如果我們直接訪問main.aspx頁面,那么會(huì)跳轉(zhuǎn)到login.aspx。
我們?cè)诘卿洶粹o下寫上如下代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LastTest
{
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (true) //可以通過查詢數(shù)據(jù)庫(kù) 驗(yàn)證用戶是否合法
{
//被注釋的這兩行語句相當(dāng)于最下面的語句 就是保存用戶后轉(zhuǎn)回到原來的頁面。
//System.Web.Security.FormsAuthentication.SetAuthCookie(TextBox1.Text, chkIsSavePwd.Checked);
//Response.Redirect("main.aspx");
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, chkIsSavePwd.Checked);
}
else
{
}
}
}
}
當(dāng)然們也可以刪除身份驗(yàn)證,退出登錄,我們?cè)谥鹘缑嫔霞右粋€(gè)注銷按鈕:
注銷下的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LastTest
{
public partial class main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//從瀏覽器刪除from驗(yàn)證票證
System.Web.Security.FormsAuthentication.SignOut();
//重新回到登錄頁面
Response.Redirect("login.aspx");
}
}
}
當(dāng)然,如果一個(gè)系統(tǒng)就有幾個(gè)人用的話,那么我們也可以添加固定用戶,然后對(duì)用戶的密碼可以進(jìn)行加密:如果MD5加密或者SHA1,當(dāng)然也可以使用clear(明文,不安全)。
以上就是關(guān)于ASP.NETt的窗體身份驗(yàn)證,希望對(duì)大家的學(xué)習(xí)有所幫助。
- ASP.net 驗(yàn)證碼實(shí)現(xiàn)代碼(C#)
- ASP.NET Internet安全Forms身份驗(yàn)證方法
- 驗(yàn)證一個(gè)ASP.NET應(yīng)用程序和頁面的生命周期的實(shí)現(xiàn)代碼
- ASP.NET MVC5添加驗(yàn)證(4)
- asp.net中的窗體身份驗(yàn)證(最簡(jiǎn)單篇)
- ASP.NET通用權(quán)限驗(yàn)證的實(shí)現(xiàn)代碼思路
- 詳解ASP.NET MVC Form表單驗(yàn)證
- ASP.NET MVC4入門教程(六):驗(yàn)證編輯方法和編輯視圖
- Asp.net頁面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟
相關(guān)文章
asp.net jQuery Ajax用戶登錄功能的實(shí)現(xiàn)
前幾天把jbox源碼修改成仿QQ空間模擬窗口后發(fā)現(xiàn)有很多人在關(guān)注。今天就貼一下我利用該模擬窗口實(shí)現(xiàn)的用戶登錄功能的代碼。2009-11-11
asp.net下實(shí)現(xiàn)URL重寫技術(shù)的代碼
asp.net下實(shí)現(xiàn)URL重寫技術(shù)的代碼...2007-10-10
jQuery實(shí)現(xiàn)倒計(jì)時(shí)跳轉(zhuǎn)的例子
這篇文章主要介紹了jQuery實(shí)現(xiàn)倒計(jì)時(shí)跳轉(zhuǎn)的例子,需要的朋友可以參考下2014-05-05
.Net筆記:System.IO之windows文件操作的深入分析
本篇文章是對(duì).Net中windows文件操作的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
asp.net Page.EnableEventValidation 屬性驗(yàn)證服務(wù)器控件的回發(fā)和回調(diào)事件出現(xiàn)的錯(cuò)誤
Page.EnableEventValidation 屬性驗(yàn)證服務(wù)器控件的回發(fā)和回調(diào)事件出現(xiàn)的錯(cuò)誤前兩天用jQuery做了一個(gè)包含DropDownList聯(lián)動(dòng)的頁面,數(shù)據(jù)通過Ajax請(qǐng)求得到的。2010-10-10
asp.net core mvc實(shí)現(xiàn)偽靜態(tài)功能
這篇文章主要為大家詳細(xì)介紹了asp.net core mvc實(shí)現(xiàn)偽靜態(tài)功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02

