摘自網路 每個註冊使用者都有自已的二級網域名稱

2021-09-06 20:08:37 字數 3159 閱讀 3990

以下是以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...