Browse by Tags

多想兩分鐘,你可以不用 validateRequest="false"(WebForm版)
接續 前一篇 不關閉validateRequest下允許傳送XML內容的議題,有人問起,我才想到該文只示範了AJAX做法,壓根忘了提WebForm環境下應如何處理。 以下是我會採用的處理方式。原理上還是透過encodeURIComponent()及HttpUtility.UrlDecode()分別在Client端與Server端加解碼,只是要額外動些手腳: 在網頁上放一個<asp:HiddenField>作為實際的傳值容器。 供使用者輸入的<textarea>或<input...
多想兩分鐘,你可以不用 validateRequest="false"
先來看以下的程式,網頁上放了一個<textarea>及<input type="button">,按鈕後以$.post()方式將<textarea>的內容送至ASP.NET Server端程式,在Page_Load中讀取Request["data"]並顯示出來,另外並透過$.ajaxSetup()指定error錯誤事件函數,捕捉並顯示伺服器端的錯誤資訊。 <%@ Page Language="C#"...
筆記-IIS 7網站目錄的最小NTFS權限
IIS 7新增了虛擬帳戶(Virtual Accounts)的概念,即每個應用程式集區(App Pool)都有一個專屬的IIS APPPOOL\AppPoolName虛擬帳號,便於更精準地控管網站相關檔案及其他資源的存取權限。(關於虛擬帳號概念,可參考保哥的詳細介紹: 介紹 IIS 7.5 的應用程式集區與新增的「虛擬帳戶」特性 ) 權限管控的最高指導原則在力求"在維持可運作的前題下,開放最少權限",因此拔除網站目錄的預設NTFS權限理,只授權給最少的必要帳號,將能提高安全性...
Posted 17 January 2012 05:43 PMJeffrey | with no comments
Filed under: ,
Telerik RadGrid AJAX更新範例
RadControls for ASP.NET AJAX 是一套挺優秀的ASP.NET元件庫,包辦了開發ASP.NET專案時需要用到的大小控制項(如: Grid、日期選擇器、數字輸入欄位、頁籤... 等等),手上有幾個專案裡就是利用RadGrid的 Client-Side Data-Binding 實現AJAX式的換頁及重排效果,但中年人記憶消失之快已到了令人心驚的地步,每次要寫類似應用都要花上大半天回頭從舊程式找範例(要命的是連在哪個專案寫過都要想半天),於是催生了這篇" 銀杏文 "...
ASP.NET MachineKey自動產生原理剖析
在ASP.NET中, MachineKey 被廣泛應用於ViewState加密、Forms Authentication及Membership Cookie加密、Out-of-Process Session資料加密、Membership密碼雜湊(或加密)... 等運算。由於預設為自動產生,大部分的人(甚至開發者)不曾感受過它的存在,但它卻一直默默扮演捍衛ASP.NET安全的重要角色。比較有機會察覺到MachineKey的場合,多半出現在多台伺服器組成Web Farm的架構中,此時需手動將各伺服器的MachineKey設成一致...
Posted 20 November 2011 12:37 AMJeffrey | with no comments
Filed under:
小心IMG SRC空字串效應
在點部落看到一篇有趣的文章: IMG SRC為空字串,可能會造成Session不見 引發我的好奇心,<img src="" />會與Session發生關聯實在是件吊詭的事,於是查了點資料,學會些新東西。 原來,<img src="" />在較早期瀏覽器版本上會觸發不同的反應: IE6-IE8會將src視為指向網頁所在目錄的URL、較舊版的Safari/Chrome/Firefox會將src指向網頁本身,新版本瀏覽器(IE要到IE9,...
HTML5 Canvas的Origin-Clean安全原則
前幾天介紹了 如何利用 toDataURL()將canvas繪製結果轉為圖檔的做法,但實際應用時,卻發現常常會冒出奇怪的錯誤: 在IE, Chrome或Safari上出現: SECURITY_ERR: DOM Exception 18 在FireFox則是冒出: 0x805303e8 (NS_ERROR_DOM_SECURITY_ERR) 原來,跟Cross-Site Scripting的限制一樣,HTML canvas也有其 安全原則 ! 簡單來說,可想成每個canvas有個origin-clean旗標...
CODE-Canvas.toDataURL()另存檔案
在 HTML5 Canvas塗鴉板 裡,雖然提供了匯出圖檔功能,卻必須由使用者自行在網頁的圖檔上按右鍵另存檔案,只能算半自助的服務。理想做法應比照一般網頁下載操作,在按鈕後直接跳出存檔提示,讓使用者決定存檔位置及檔名等,較符合一般使用者期望。 我在網路上找到Jacob Seidelin實作的 cavas2imgage.js程式庫 ,追了一下程式碼發現是透過location.href = DataURI字串實現由Javascript觸發瀏覽器直接下載檔案,但我發現它有一些缺點: 一來無法指定檔案名...
使用P3P Header解決跨網域IFrame Session遺失問題
最近協助處理的問題,某個網頁使用IFrame內嵌了來自另一個網站的ASP.NET網頁,被內嵌的網頁有使用到Session,單獨開啟操作時一切正常;但被內嵌使用時,會出現Session無法儲存的問題。而有趣的是,另外單獨開啟Session網頁一次,再回頭使用被內嵌的版本,居然Session功能就正常了。 我用以下的網頁來模擬情境,httq://172.28.1.1/P3P/Main.aspx以IFrame內嵌了另一個網站httq://127.0.0.1/P3P/UserSession.aspx(其實都是同一台機器的同一個Web...
TIPS-用URL傳送Base64編碼
ASP.NET網站專案,使用Query String傳送Base64編碼後的參數值(例如: MyApp.aspx?d=RGFya3RocmVhZCBSb2NrcyEh),卻發現測試有時成功有時失敗,最後查出是程式產生URL時沒有對Base64字串進行UrlEncode編碼所造成的問題。 Base64編碼 使用了 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",再加上補齊長度的1個或2個"...
Blocking Test of ASP.NET Session Reader Lock
I spent some time identifying the behavior of blocking of ASP.NET pages for session object locking, and Patrick’s “ Understanding session state modes + FAQ ” provides important information: Q: Does session state have a locking mechanism that serialize...
Posted 31 August 2011 10:32 PMJeffrey | with no comments
Filed under: ,
再探ASP.NET大排長龍問題
在 MaxConnectionsPerServer實驗 中,發現一個過去被忽略的問題: 原來同一個Session下, 啟用Session的ASP.NET網頁,因鎖定限制有可能出現單一時間內只能有一個Request被處理的情況 。換句話說,即便我們使用非同步方式同時發出10個對ASP.NET網頁的Request,若該ASP.NET網頁涉及Session,這10個Request將不會同步執行,而是10個Request排成一列,一個執行完再執行下一個。 回到上回MaxConnectionsPerServer...
TIPS-偵測元件是否在ASP.NET環境中執行
過去在開發Class Library專案撰寫共用元件時,我常用HttpContext.Current != null來判別程式是否處於ASP.NET環境,再依ASP.NET環境或WindowForm/Console環境決定不同處理邏輯。例如: 若在ASP.NET中,就由App_Data讀取資料檔案;若為Console程式,就由EXE檔所在目錄讀檔。 但依經驗,判讀HttpContext.Current的做法會有例外狀況: 若元件是在WCF Service程式中被呼叫,且WCF未開啟ASP.NET相容模式...
Posted 27 August 2011 08:50 AMJeffrey | with no comments
Filed under:
IE MaxConnectionsPerServer參數效果實測
最近在搞用Client Script模擬壓力測試的把戲,順道對IE的MaxConnectionsPerServer屬性做了實測。 IE6/7預設會限制從同一台網站伺服器下載檔案最多只能同時用2條連線,換句話說,若一個網頁上有12個不同的<img>圖檔來自同一台網站伺服器,IE6/7並不是一口氣發出12個HTTP GET Request取回圖檔,而是讓12個Request排隊輪流共用兩條連線下載檔案。IE8起,同時連線數的上限才被提高到6條。(事實上,針對HTTP 1.0或1.1、寬頻或撥接環境...
【茶包射手日記】Web Site Project的參照設定儲存位置
被一個茶包困擾了好幾天,總算豁然開朗,也才搞清楚長久以來被我忽略的一項Web Site Project細節。 參與的專案在Web Site Project中呼叫了另一個WCF Project,由於WCF Method傳回的結果型別為另一個Class Library專案中的類別(假設為BooData),而Web Site Project並沒有參照該Class Library。依ASP.NET引用WCF服務的原理,在參照WCF服務時,應會在Web Site Project另行定義BooData類別,用以承接WCF...
更多文章 下一頁 »

搜尋

Go

<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910
 
RSS
【工商服務】
OrcsWeb: Windows Server Hosting
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication