asp.net 身分識別驗證(分目錄驗證篇)_實用技巧

來源:互聯網
上載者:User
比如一個新聞系統,通常只有在發布新聞的網頁才需要身分識別驗證,而使用者瀏覽新聞是不需要身分識別驗證的。對於這種情況,就要針對不同的網頁來進行身分識別驗證了。
要實現這種功能,也只要將《asp.net中的身分識別驗證(最簡單篇)》稍作修改,具體操作方式如下所示:

第一步、建立一個子檔案夾,將所有要驗證的網頁都放在這個檔案夾中,設定該檔案夾的名字為“admin”。

第二步、修改web.config檔案。
1、在<system.web>和</system.web>中找到<authentication>節,將其改為“<authentication mode="Forms"><forms loginUrl="~/admin/AdminLogin.aspx"></forms></authentication>”,其中Forms代表使用表單認證;loginUrl用於指定登入頁面URL,個人比較喜歡將登入頁面也放在admin檔案夾中,所以在此要指定登入頁面URL,如果還是想使用根目錄中的login.aspx頁面作為登入頁面,則可以省略<forms>節。
2、在<system.web>和</system.web>中添加“<authorization><allow users="?"/></authorization>”,其中“<allow users="?"/>”代表允許所有的匿名使用者。注意此處與《asp.net中的身分識別驗證(最簡單篇)》的區別,在《asp.net中的身分識別驗證(最簡單篇)》中,此處使用的是“<deny users="?"/>”,用於拒絕所有匿名使用者。

第三步、在需要身分識別驗證的子檔案夾中添加一個web.config檔案,在本例中為在“admin”檔案夾中添加該檔案。

第四步、修改需要身分識別驗證的子檔案夾中的web.config檔案,在本例中為“admin”檔案夾中的web.config檔案。
在<system.web>和</system.web>中,添加“<authorization><deny users="?"/></authorization>”,由於在根目錄中的web.config檔案中聲明了允許所有匿名使用者存取,所以在不能允許匿名使用者存取的子檔案夾中,必須要使用“<deny users="?"/>”來拒絕匿名使用者存取。另外,在子檔案夾中的web.config檔案中可以沒有<authentication>節。

第五步、在“admin”子檔案夾中建立AdminLogin.aspx檔案。如果在第二步中沒有使用<forms>節來指定使用者登入頁面,則在網站根目錄下建立login.aspx檔案。

第六步、在AdminLogin.aspx檔案(或login.aspx檔案)中驗證身份,如果身分識別驗證通過,使用FormsAuthentication.SetAuthCookie()為使用者建立一個身分識別驗證的票據,並將其添加到Cookie中。以後,再訪問網站中admin子目錄下的其他網頁,就不需要使用進行身分識別驗證了。單擊提交按鈕後的代碼與《asp.net中的身分識別驗證(最簡單篇)》中的代碼類似,在此就不再贅述了。

本例在VS2005中測試通過。
本例的優點:過程和代碼都十分簡單,可以指定某個目錄中的網頁進行身分識別驗證,而不是整個網站的所有網站都進行身分識別驗證。
本例的缺點:身分識別驗證過於簡單,驗證結果只有兩種,一種是沒有通過驗證,因而拒絕訪問;一種是通過驗證,可以訪問。如果想對許可權進行細分,比較說管理員A擁有添加許可權,而管理員B只擁有查看許可權,這種功能就無法實現了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.