怎麼去檢測你的系統是否安裝有微軟.net架構?
作為一個web開發人員,你可能會提出這樣一個有趣的問題:有沒有方法去探測你的機器是否裝有.net環境?答案就是,當然!(否則,我就不會在這裡寫這篇文章,你也不會現在在讀它:P)。這探測的方法驚人的簡單,甚至外行也很容易掌握它!
當你安裝.net架構,它不只只是增加一個新程式在你的PC上,也同時更改了一些已存在程式的行為。例如,它更改了IE瀏覽器的一些東西——它修改了你IE的使用者代理程式資訊(User-Agent),所以它包括.net架構的版本資訊。
我在講什嗎?我們可以去看一個樣本:Asp.net's Web Matrix Project page,然後點選連結:“Click here to see if you have the.NET Framework installed.“。然後下面一個頁面會告訴你你是否裝有.net環境。
它們是怎麼做到的?讓我們來看一看當你點選連結時實際發生了什麼:
看Http頭中這高亮顯示的一行:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
在沒安裝.net環境之前,它的內容為“User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)“.現在,.net環境被安裝,它就多了一些擴充的資訊——NET CLR 1.0.3705。這個新的內容可用來探測.net架構在Asp/Asp+頁面中。
例如,你可在頁面page_load函數中寫下如下句子:
string a = Request.ServerVariables["HTTP_USER_AGENT"];//取得頭
if (a.IndexOf(".NET CLR 1.0.3705")<0)//檢測
{ Response.Write(".net 不對"); }
else { Response.Write(".net 對"); }