[Visual Studio "11" Series][ASP.NET] ASP.NET 4.5 系列 (1):Web Form 的新功能

隨著 Visual Studio "11" Developer Preview 的問世,連帶它的核心部份 .NET Framework 4.5 也向大家見面了,.NET Framework 4.5 幾個重要的改變像是 async/await pattern 以及更強的 parallel task 演算法等,未來都會慢慢的有更多細節出來,不過本系列文主要是針對 ASP.NET 的下一代 (ASP.NET v4.5) 的功能,有些是因應市場技術所做的變更,也有針對架構面以及開發人員支援的面向做變更。

...繼續閱讀 »

[Security] HTTP 動詞竄改弱點 (HTTP Verb Tampering)

這是今天有位朋友在 MSN 上問的一個問題,因為我也是第一次看到這個名詞,所以我也上網查了一下,在 Arshan Dabirsiaghi 於 2008 年所發表的 "Bypassing Web Authentication and Authorization with HTTP Verb Tampering" 論文中提到這樣的弱點,但早在 2004 年 Kernelpanik Lab 就已經有研究報告提出這個弱點,主要的原因是在 Web Server 或 Web Application 或 HTTP Endpoint 中,沒有針對 HTTP 動詞 (verb) 去做存取控制所致。

...繼續閱讀 »

[Windows Azure] 讓 ASP.NET 的 Membership, Role 以及 Session State 可用於 SQL Azure 資料庫

Membership, Role 以及 Session State 這三樣是 ASP.NET 2.0 以後其後版本中的重要角色,ASP.NET 內建了數個 APIs 以及預設的 Providers,並透過 aspnet_regsql.exe 在 SQL Server 中可以建立必要的資料庫與表格,供 ASP.NET 應用程式使用。但是,在 SQL Azure 中,這個功能突然不能用了...

...繼續閱讀 »

[Bug 逃走中][ASP/ASP.NET] 移機時,千萬要注意有沒有漏掉的 3-party 元件...

前幾天同事突然跟我求救,原本可以執行的 ASP 程式(你沒看錯,是ASP)在移到新的伺服器後突然不能用了,這樣一來在線上的應用程式全都無法使用,要我去一趟客戶那裡看是有什麼問題,隔天到了客戶那裡後,同事操作了一下重現問題,發現原本 ASP 程式可以收到 request 的內容,但移到新機後,request 全變空白了...

...繼續閱讀 »

[.NET] 產生具有多個值,multipart/form-data 的 HTTP POST 訊息

這個功能是在設計 Facebook Graph API Client Library 時碰到的問題,在 Graph API 中的 Publish_Stream 中有一項上傳相片的功能,這個功能內有一個 message 和 access_token 參數,而原本我們學習的 HTTP 技術本身大多都是沒有混合二進位和字串值的參數,所以當時碰到這個問題時,一時想不到什麼解決方法,後來搜尋到 RFC 2188: Returning Values from Forms: multipart/form-data,這份文件說明了在 HTTP POST 訊息中使用多種格式訊息的作法,它可以用在許多 REST-based API 的系統,它可以混合多種資料格式並一次傳送,當然非文字的資料必須要編碼為二進位字串。

...繼續閱讀 »

[.NET] 使用 HTTP Handler 部署不同作業系統版本的 ActiveX Control

筆者在 ActiveX 控制項開發的封裝部署一文的最後,曾經提到 Windows XP 和 Windows Vista/7 的部署差異,這會讓開發人員需要依照作業系統的不同來撰寫 INF 檔案來自動化安裝,而且還要在網頁中偵測不同的作業系統給予不同的 CAB 檔案,但我們有一些方法來簡化這個部份的處理,讓開發人員可以在不動一行 <object> 宣告下,支援 Windows XP 和 Windows Vista/7 的作業系統環境。其實方法很簡單,只要使用 HTTP Handler 就能做到了。

...繼續閱讀 »

[ASP.NET] ASP.NET 零時差攻擊 &ndash; POET 原理與防禦措施

2010/9/18,由Scott Guthrie在blog上發表的一篇Important: ASP.NET Security Vulnerability的文章,點燃了ASP.NET應用程式的安全防護戰爭,因為受影響的範圍遍及ASP.NET 1.0-4.0所有的應用程式,讓使用ASP.NET開發應用程式的開發人員無一不陷入資訊安全的恐懼之中,在9/18日起的幾天內,許多與ASP.NET技術有關的blog都發出了這個安全性警告,因為這個漏洞在公布的同時,攻擊程式就已經在網路上出現了,這是資安所稱的零時差攻擊(Zero-Attack),零時差攻擊最大的特色就是在系統被修補之前,就有很高的機率被攻擊程式所攻擊(甚至攻陷),因此這個漏洞會在這麼短的時間內受到關注,是有其原因的。

...繼續閱讀 »

[ASP.NET]撰寫自己的 Configuration 區段 Part 3: 自訂組態集合

經過Part 1 和 Part 2 的試練以後,我想你應該已經有一個自己的 Configuration 系統了,而且也用的很開心,終於可以擺脫掉一大堆 appSettings 的噩夢了,而且只要修改 Web.config 的區段就可以變更程式的設定值。但用久了總是會不太對勁,因為目前為止,這些區段都只能獨立存在,而且只有一個。這時可能就會回想以前 appSettings 的好,因為它可以利用 來動態增加項目,不過,這個在你自己的 Configuration 中,其實也是可以做到的。

...繼續閱讀 »

[ASP.NET]撰寫自己的 Configuration 區段 Part 2: 將自己的組態組織成一個 Group

繼前一篇文章:"不要再賴在 appSettings 的屋簷下了,寫個自己的 Configuration 區段吧~" 之後,也許你已經著手,或已經將自己的設定值移到了自己的 section 中,但現在又有一個問題,就是:如果是不用模組的 section,全擠在同一個 section 中很難看,也不容易找。那麼,本文將可以幫助你。

...繼續閱讀 »

[ASP.NET]撰寫自己的 Configuration 區段 Part 1:不要再賴在 appSettings 的屋簷下了,寫個自己的 Configuration 區段吧~

我想,很多寫 ASP.NET 應用程式的人,都會習慣性的把自己的一些設定值放到 Web.config 中的 appSettings 區域中,然後用 ConfigurationSettings.AppSettings (1.1) 或 ConfigurationManager.AppSettings (2.0+) 來取設定值吧,雖然它是很好用沒錯,但是如果設定一多的話,appSettings 區塊會充斥一大堆的設定值,屆時要分也不太好分(一堆不同模組的設定都混在同一區了),因此,若想要寫中大型 ASP.NET 應用程式的人,可能不得不學一下如何設計自己的 Configuration 區段了。

...繼續閱讀 »

怎麼玩 URL Rewriting

URL Rewriting,這個好像似曾相識,又覺得很陌生的技術,已經隨著資訊安全與 SEO (Search Engine Optimization) 的腳步,逐漸影響每個 Web Developer,不論你是走哪個技術的(ASP, ASP.NET, PHP, JSP, Ruby, Perl, ...),基本上都很難不去重視它,因為它其實可以幫你很多忙。光是一個 REST 的 URL 樣式,就可以讓很多人眼睛為之一亮。

...繼續閱讀 »