怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證

這篇文章主要講解了“怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證”吧!

創(chuàng)新互聯(lián)建站長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為李滄企業(yè)提供專業(yè)的成都網(wǎng)站制作、做網(wǎng)站,李滄網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

ASP.NET 的安全認(rèn)證,共有“Windows”“Form”“Passport”“None”四種驗(yàn)證模式?!癢indows”與“None”沒有起到保護(hù)的作用,不推薦使用;“Passport”我又沒用過,唉……所以我只好講講“Form”認(rèn)證了。我打算分三部分:

***部分 —— 怎樣實(shí)現(xiàn)Form表單認(rèn)證;

第二部分 —— Form表單認(rèn)證的實(shí)戰(zhàn)運(yùn)用;

第三部分 —— 實(shí)現(xiàn)單點(diǎn)登錄(Single Sign On)

***部分 如何運(yùn)用Form表單進(jìn)行ASP.NET認(rèn)證

一、新建一個(gè)測(cè)試項(xiàng)目

為了更好說明,有必要新建一個(gè)測(cè)試項(xiàng)目(暫且為“FormTest”吧),包含三張頁面足矣(Default.aspx、Login.aspx、UserInfo.aspx)。啥?有人不會(huì)新建項(xiàng)目,不會(huì)新增頁面?你問我咋辦?我看這么辦好了:拖出去,打回原藉,從幼兒園學(xué)起……

二、修改Web.config

1、雙擊項(xiàng)目中的Web.config(不會(huì)的、找不到的打 PP)

2、找到下列文字 把它改成:

<authentication mode="Forms"> <forms loginUrl="Login.aspx" name=".ASPXAUTH">forms> authentication>

3、找到換成

<authorization><deny users="?">deny>authorization>

這里沒什么好說的,只要拷貝過去就行。雖說如此,但還是有人會(huì)弄錯(cuò),如下:

<authentication mode="Forms">        <forms loginUrl="Login.aspx" name=".APSX">forms> <deny users="?">deny> authentication>

若要問是誰把放入 中的,我會(huì)很榮幸地告訴你,那是 N 年前的我: 與 都是以 auth 字母開頭又都是以 ation 結(jié)尾,何其相似;英文單詞背不下來的我以為他們是一伙的……

三、編寫.cs代碼——登錄與退出

1、登錄代碼:

a、書本上介紹的

private void Btn_Login_Click(object sender, System.EventArgs e)           {                if(this.Txt_UserName.Text=="Admin" && this.Txt_Password.Text=="123456")                {       System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.Txt_UserName.Text,false);       }  }

b、偶找了N久才找到的

private void Btn_Login_Click(object sender, System.EventArgs e)           {                if(this.Txt_UserName.Text=="Admin" && this.Txt_Password.Text=="123456")                {   System.Web.Security.FormsAuthentication.SetAuthCookie(this.Txt_UserName.Text,false);       Response.Redirect("Default.aspx");       }  }

以上兩種都可發(fā)放驗(yàn)證后的Cookie ,即通過驗(yàn)證,區(qū)別:

方法 a) 指驗(yàn)證后返回請(qǐng)求頁面,俗稱“從哪來就打哪去”。比如:用戶沒登錄前直接在IE地址欄輸入 http://localhost/FormTest/UserInfo.aspx ,那么該用戶將看到的是 Login.aspx?ReturnUrl=UserInfo.aspx ,輸入用戶名與密碼登錄成功后,系統(tǒng)將根據(jù)“ReturnUrl”的值,返回相應(yīng)的頁面

方法 b) 則是分兩步走:通過驗(yàn)證后就直接發(fā)放Cookie ,跳轉(zhuǎn)頁面將由程序員自行指定,此方法多用于Default.aspx 使用框架結(jié)構(gòu)的系統(tǒng)。

2、ASP.NET認(rèn)證退出代碼:

private void Btn_LogOut_Click(object sender, System.EventArgs e)       {  System.Web.Security.FormsAuthentication.SignOut();  }

四、如何判斷ASP.NET認(rèn)證與否及獲取ASP.NET認(rèn)證 后的用戶信息

有的時(shí)候,在同一張頁面需要判斷用戶是否已經(jīng)登錄,然后再呈現(xiàn)不同的布局。有人喜歡用Session來判斷,我不反對(duì)此類做法,在此我只是想告訴大家還有一種方法,且看下面代碼:

if(User.Identity.IsAuthenticated)           {                //你已通過ASP.NET認(rèn)證,知道該怎么做了吧?  }

User.Identity 還有兩個(gè)屬性AuthenticationType(驗(yàn)證類型)與 Name(用戶名稱) ,大家要注意的是Name屬性,此處的User.Identity.Name將得到,驗(yàn)證通過(RedirectFromLoginPage 或SetAuthCookie)時(shí),我們帶入的***個(gè)參數(shù) this.Txt_UserName.Text 。

感謝各位的閱讀,以上就是“怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站名稱:怎么用Form表單實(shí)現(xiàn)ASP.NET認(rèn)證
鏈接地址:http://muchs.cn/article40/pppjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、面包屑導(dǎo)航App開發(fā)、網(wǎng)站營(yíng)銷、、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司