以下是以www.devin.cn這個網域名稱為例,讓每個註冊使用者都有自已的二級網域名稱,其中abc.devin.cn就是要用到的二級網域名稱基本思路:
1. 網域名稱支援泛解析,即是指:把a記錄 *.devin.cn 解析到伺服器ip,伺服器iis中做繫結,繫結時主機頭為空;
2. 為了實現完全的二級域,建兩個站點,乙個為主站用,乙個為使用者用,兩個站點目錄都指到乙個同一**目錄
4. 用獲取來的二級網域名稱名稱,存入session,方便取用
5. 用獲取來的二級網域名稱名稱,用url重寫位址
實現方法:
網域名稱a記錄解析不用說了吧 ^_^,就是做乙個*.devin.cn的a記錄解析到你伺服器ip
方法一:二級網域名稱url轉向
a. 建立站點,在iis中繫結網域名稱(win2003 - iis6)
這裡只要繫結乙個就行了,繫結後如下圖所示:
將此站點預設訪問文件設為index.aspx,。
做好後,不管用什麼樣的二級字首都會訪問到這個**。
下面來獲取url位址進行分析,下面是過程**,用來獲取及判斷主機頭,**放在預設文件的首檔案index.aspx.cs中
//////取得二級域主機頭值,並實行轉向
/// public
void
checkdomain()
); //
陣列,以「.」分隔
//判斷二級網域名稱位址是否符合abc.網域名稱.com 這種格式,及陣列userhost長度不大於3,否則就跳傳到其它頁
if (userhost.length > 3
)
userdomainname = userhost[0].tostring(); //
取得陣列最前面一組值,及二級網域名稱主機頭
//進行特定判斷,及是不要用到做為二級網域名稱的主機頭
if (userdomainname.tolower() == "
www" || userdomainname.tolower() == "
devin
" || userdomainname == null || userdomainname.tostring()==""
)
else
}
到這裡已經可以實現abc.devin.cn跳轉到指定的頁面或鏈結了,但並不是真正的二級網域名稱,只是url轉向而已。
方法二:真正的二級網域名稱
a. 建立站點
此時我們需要建立兩個站點,乙個主站點、乙個二級域站點,二個站點的檔案目錄為同一目錄,其目錄中有default.aspx及index.aspx兩個檔案。建立方法如下:
a). 主站點建立方法參照方法一中的站點建立,不過,主機頭非空,需設為www.devin.cn 與 devin.cn ,當然,你也可以設定其它不想用來做二級域的主機頭。站點預設訪問文件為:default.aspx。
b). 二級域站點建立方法與方法一中的站點建立一樣,其預設訪問文件為:index.aspx。
b. 現在我們要用到之前建立的二級域站點,我們將使用者的資料放在根目錄下的user目錄中。
下面是/user目錄中預設文件(index.aspx.cs)的過程**,主要用途是將二級網域名稱主機頭存入session,方便呼叫,也是二級域(使用者區)的首頁檔案
//////取得二級域主機頭值,存入session["userdomainname"]中
/// public
void
userdomainnamesession()
); //
陣列,以「.」分隔
//判斷二級網域名稱位址是否符合abc.網域名稱.com 這種格式,及陣列userhost長度不大於3,否則就跳傳到其它頁
if (userhost.length > 3
)
userdomainname = userhost[0].tostring(); //
取得陣列最前面一組值,及二級網域名稱主機頭
//進行特定判斷,及是不要用到做為二級網域名稱的主機頭
if (userdomainname.tolower() == "
www" || userdomainname.tolower() == "
devin
" || userdomainname == null || userdomainname.tostring()==""
)
else
}
//你對session["userdomainname"]的處理,比如把這個session["userdomainname"]的值是「abc」,那麼你可以index.aspx?username=abc,如果不想使用session,你可以在需要用到二級域主機頭時,再來通過url位址獲取。
c. url重寫
我用的是微軟的urlrewriter,使用方法參見:
web.config 中的重寫方法是:
~/index\.aspx
~/user/index.aspx
到這裡已經實現二級域了,不管輸入什麼樣的主機頭(www.devin.cn 與 devin.cn除外,因為這兩個域已經繫結到主站點中,優先訪問到了主站點),就可以實現 abc.devin.cn訪問到這個使用者目錄了,而且瀏覽器位址列,出現的也是abc.devin.cn這樣的網域名稱位址,為了保證此二級域訪問其它頁面也保持二級網域名稱的屬性,也需同時做url重寫,在其它頁面如需用到二級域主機頭(使用者名稱),從session["userdomainname"] 中取得即可,比如,要在user目錄中的檔案 test.aspx ,顯示二級域主機頭名稱,同時需保持瀏覽器位址列位址為: abc.devin.cn/test.aspx ,那麼在web.config中新增url重寫規則:
~/test\.aspx~/user/test.aspx
然後,test.aspx自身通過獲取session["userdomainname"]的值或通過url或取,來顯示二級域主機頭名稱。
當然,你也可以直接將二級域站點單獨繫結到這個user使用者目錄,取得url中的主機頭(使用者名稱),但這樣可能失去了與主站資料通訊的方便性。
另:asp.net mvc 實現二級網域名稱
asp.net mvc 使用二級網域名稱來註冊area區域
摘自網路 每個註冊使用者都有自已的二級網域名稱
以下是以www.devin.cn這個網域名稱為例,讓每個註冊使用者都有自已的二級網域名稱,其中abc.devin.cn就是要用到的二級網域名稱基本思路 1.網域名稱支援泛解析,即是指 把a記錄 devin.cn 解析到伺服器ip,伺服器iis中做繫結,繫結時主機頭為空 2.為了實現完全的二級域,建兩...
讓每個使用者都有同樣的輸入法配置
以前我們做終端時都會有乙個問題,比如你在計算機上安裝了五筆輸入法,那當前可用,其他使用者必須手動新增才能使用,有沒有乙個好點的辦法呢.1,2000,2003都可用的方法 把當前使用者的documents and settings 使用者 樣板使用者 ntuser.dat複製到default user...
終端服務中讓每個使用者都有同樣的輸入法配置
以前我們做終端時都會有乙個問題,比如你在計算機上安裝了五筆輸入法,那當前可用,其他使用者必須手動新增才能使用,有沒有乙個好點的辦法呢.1.2000 2003都可用的方法 把當前使用者的documents and settings 使用者 樣板使用者 ntuser.dat複製到default user...