在ASP.NET中創建安全的web站點
發表于:2007-09-07來源:作者:點擊數:
標簽:
首先,介紹一下web.config文件。 <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <!-- 動態調試編譯 設置 compilation de bug ="true" 以將調試符號(.pdb 信息) 插入到編譯頁中。因為這將創建執行起來 較慢的大文件,所以
首先,介紹一下web.config文件?!?
?。?xml version="1.0" encoding="utf-8" ?>
?。糲onfiguration>
?。約ystem.web>
?。?-- 動態調試編譯
設置 compilation de
bug="true" 以將調試符號(.pdb 信息)
插入到編譯頁中。因為這將創建執行起來
較慢的大文件,所以應該只在調試時將該值設置為 true,而所有其他時候都設置為
false。有關更多信息,請參考有關
調試 ASP.NET 文件的文檔。
-->
?。糲ompilation defaultLanguage="
vb" debug="true" />
?。?-- 自定義錯誤信息
設置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設置為 "Off" 以禁用自定義錯誤信息。
為每個要處理的錯誤添加 <error> 標記。
-->
?。糲ustomErrors mode="RemoteOnly" />
?。?-- 身份驗證
此節設置應用程序的身份驗證策略??赡艿哪J绞?“
Windows”、
“Forms”、“Passport”和 “None”
-->
?。糰uthentication mode="Windows" />
?。?-- 授權
此節設置應用程序的授權策略??梢栽试S或拒絕用戶或角色訪問
應用程序資源。通配符:"*" 表示任何人,"?" 表示匿名
?。ㄎ词跈嗟模┯脩?。
-->
?。糰uthorization>
?。糰llow users="*" /> <!-- 允許所有用戶 -->
?。?-- <allow users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
?。糳eny users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
-->
?。?authorization>
?。?-- 應用程序級別跟蹤記錄
應用程序級別跟蹤在應用程序內為每一頁啟用跟蹤日志輸出。
設置 trace enabled="true" 以啟用應用程序跟蹤記錄。如果 pageOutput="true",則
跟蹤信息將顯示在每一頁的底部。否則,可以通過從 Web 應用程序
根瀏覽 "trace.axd" 頁來查看
應用程序跟蹤日志。
-->
?。紅race enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
?。?-- 會話狀態設置
默認情況下,ASP.NET 使用 cookie 標識哪些請求屬于特定的會話。
如果 cookie 不可用,則可以通過將會話標識符添加到 URL 來跟蹤會話。
若要禁用 cookie,請設置 sessionState cookieless="true"。
-->
?。約essionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
?。?-- 全球化
此節設置應用程序的全球化設置。
-->
?。糶lobalization requestEncoding="utf-8" responseEncoding="utf-8" />
?。?system.web>
?。?configuration>
好了,相信看過上面的介紹以后,對web.config文件一定非常了解了吧。下面我們就切入主題。為了防止用戶沒有經過驗證就訪問站點,我們的處理方法是當用戶沒有通過驗證的時候點擊任何頁面將會直接跳到Login.aspx頁面,具體代碼如下:
?。糰uthentication mode="Forms">
?。糵orms name="yourAuthCookie" loginUrl="login.aspx"
protection="All" path="/" />
?。?authentication>
?。糰uthorization>
?。糳eny users="?" />
?。?authorization>
但是這樣會產生一個問題,那就是如果我的站點有一些信息是可以讓任意用戶隨意訪問的,比如站點簡介,使用說明等。如果按照上面的處理方法豈不讓用戶覺得很麻煩,呵呵,不急,在ASP.NET中自然有相應的解決辦法。下面的代碼可以實現匿名用戶訪問Test.aspx頁面:
?。糽ocation path="test.aspx">
?。約ystem.web>
?。糰uthorization>
?。糰llow users="?" />
?。?authorization>
?。?system.web>
?。?location>
|
原文轉自:http://www.kjueaiud.com