程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ASP.NET實現匿名訪問控制

ASP.NET實現匿名訪問控制

編輯:.NET實例教程

     通過學習我掌握了兩種控制方法,實現了對於網站的匿名訪問控制,一個是通過IIS實現,另一個是通過ASP.NET實現。個人感覺兩種基本上可以實現的功能沒有什麼差別,不過通過ASP.Net實現的更易於管理和維護。
  
  對於通過IIS的實現都比較清楚,可以對文件夾或單個文件(頁面)設置訪問權限,IIS提供了“目錄安全性”和“文件安全性”的設置方法。並可以通過直接設置不同訪問人的權限。其中就提供了匿名訪問的控制方法,這裡不再細說。
  
  
  
  ASP.Net控制方法:
  
  首先介紹例子實現的效果,一個網站登陸以後可以將用戶信息保存在一個cookIE中,並標識用戶是通過身份驗證的,在訪問其他頁面的時候直接對用戶的身份是否通過驗證進行判斷,如果通過即可繼續訪問頁面,如果是一個未通過驗證的匿名訪問用戶(即未登錄用戶)則將跳轉到登陸頁面提示用戶登錄。設置其中一個用戶注冊頁面為可以匿名訪問,因為業務邏輯上只有允許注冊才能登陸。
  
  在登陸頁面還是先對用戶的用戶名和密碼進行驗證,至於使用與數據庫比對的方法還是到AD中驗證等都可以,然後通過以下的方法將當前用戶在cookIE中標識為通過驗證的用戶,並跳轉到用戶跳轉到登陸頁之前請求的頁面。
  
  FormsAuthentication.RedirectFromLoginPage(userName,createPersistentCookIE);
  
  在用戶直接請求的頁面上我們使用如下的方法來驗證用戶。
  
  Context.User.Identity.IsAuthenticated
  
  Context:獲取與該頁關聯的 System.Web.HttpContext 對象
  
  User:為當前 HTTP 請求獲取或設置安全信息
  
  Identity:獲取當前用戶的標識
  
  IsAuthenticated:獲取一個bool值,該值指示是否驗證了用戶
  
  
  
  然後我們在Web.config中進行安全設置。
  
   <authentication mode="Forms">
  
   <forms loginUrl="Login.ASPx"></forms>
  
  </authentication>
  
  "Forms" 您為用戶提供一個輸入憑據的自定義窗體(Web 頁),然後在您的應用程序中驗證他們的身份。用戶憑據標記存儲在 CookIE 中。
  
   <authorization>
  
   <deny users="?" />
  
   </authorization>
  
  deny表示禁止,users="?"表示匿名用戶
  
   <location path="NewUser.ASPx">
  
   <system.web>
  
   <authorization>
  
   <allow users="*" />
  
   </authorization>
  
   </system.web>
  
   </location>
  
  表示新用戶注冊頁面NewUser.ASPx,可以允許任何人訪問。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved