iT邦幫忙

DAY 10
3

從零開始開發Web應用程式系列 第 10

Web應用程式開發-ASP.NET Page指示詞

  • 分享至 

  • xImage
  •  

在正式開發之前,要瞭解asp.net的Page指示詞,這部分主要是在aspx的設計頁面中,針對整個頁面的設定,常用到的列舉如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CallWcf.aspx.cs" Inherits="CallWcf" %>
Language : 指定在編譯所有內嵌轉譯 (<% %> 和 <%= %>) 與網頁內的程式碼宣告區塊時所使用的語言。值可以表示任何 .NET Framework 支援的語言,包括 Visual Basic、C# 或 JScript。每個網頁只能使用和指定一種語言。
AutoEventWireup : 是否自動連結網頁事件
CodeFile : 指定網頁所參考之程式碼後置檔的路徑。這個屬性與 Inherits 屬性一起使用,將程式碼後置的原始程式檔與 Web 網頁關聯。該屬性只對已編譯的網頁有效。
Inherits : 定義網頁要繼承的程式碼後置 (Code-Behind) 類別。
EnableViewState : 表示檢視狀態是否要在所有網頁要求之間都要維持。如果檢視狀態要維持,則為true,否則為 false。預設為 true。
MasterPageFile : 設定內容頁面或巢狀主版頁面 (Master Page) 之主版頁面的路徑。支援相對和絕對路徑。
MaintainScrollPositionOnPostback : 表示在回傳後是否將使用者帶回至用戶端瀏覽器中相同的位置。如果使用者應回到相同的位置,則為 true,否則為 false。預設值為 false。
ValidateRequest : 指示是否應該執行要求驗證。如果是 true,則要求驗證會根據潛在危險值的硬式編碼清單,檢查所有的輸入資料。如果找到符合的資料,便會擲回 HttpRequestValidationException 例外狀況。預設值為 true。這項功能可減少在直接使用網頁或 ASP.NET 應用程式時,受到跨網站指令碼攻擊的風險。沒有適當驗證使用者輸入的應用程式可能會遭受許多種錯誤輸入的攻擊,包括跨網站的指令碼和 Microsoft SQL Server 插入式攻擊 (Injection Attack) 等。
Trace : 表示是否已啟用追蹤(trace.axd)。如果已啟用追蹤,則為 true,否則為 false。預設為 false。
enabled="true|false" traceMode="SortByTime|SortByCategory"
<trace enabled="true" pageOutput="true" requestLimit="100"
traceMode="SortByTime" localOnly="true" />

更詳細的可參考線上的說明文件,上述的部分是一定會用到的部分,舉例來說MaintainScrollPositionOnPostback這個屬性,是保持頁面postback後在停留原來的位置,若是不用這個屬性,用javascript也是可以做掉,但是就多了一大段程式碼,因為在這個平台上開發,當然就利用原來就提供的功能就可,不必畫蛇添足,另外就資安的部分來說,ValidateRequest是防止xss的基本設定,當然微軟還提供了AntiXss的library可使用,主要是防止跨站指令碼的攻擊,這實這些即使開發不同的系統都必須考量的東西,在.net這個開發平台上,都已經被設計進去了,當然若是不看文件不看書,整個開發平台的特性完全不知,就會疊床架屋,還是完全按照以前的開發方式,只是把他移轉到.net平台上,但是不知很多東西用設定的就可以了,還是密密麻麻寫一堆,因此觀念不轉換,也無須轉換到.net的開發平台上,因為真得毫無意義,頂多因為客戶要求用.net,就騙騙客戶,反正是.net了,
這就像已經走進了法國餐廳,就入進隨俗了,都已經進到餐廳了,還是去瞭解一下菜單吧,不點鍋牛,覺得太噁心,點個松露或鵝肝也好,但就是要坐在法國餐廳然後和服務生說:麻煩滷肉飯和貢丸湯各一份...


上一篇
Web應用程式開發-ASP_NET Page Life Cycle
下一篇
Web應用程式開發-ASP.NET 網站發行選項
系列文
從零開始開發Web應用程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言