国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

網站二級域名用asp.net 2.0的實現方案

2024-07-10 13:05:53
字體:
來源:轉載
供稿:網友

本人所了解有兩種方案,可能還有其的方式,希望大家多多討論!
基本思路:
1. 域名支持泛解析,即是指:把a記錄 *.xrss.cn  解析到服務器ip,服務器iis中做綁定,綁定時主機頭為空;
2. 為了實現完全的二級域,建兩個站點,一個為主站用,一個為用戶用,兩個站點目錄都指到一個同一網站目錄
3. 在web程序中或取url來源中的二級域名主機頭,比如:abc.xrss.cn 中的 abc;
4. 用獲取來的二級域名名稱,存入session,方便取用
5. 用獲取來的二級域名名稱,用url重寫地址

實現方法:
域名a記錄解析不用說了吧 ',就是做一個*.xrss.cn的a記錄解析到你服務器ip

方法一:二級域名url轉向
a. 建立站點,在iis中綁定域名(win2003 - iis6)
打開iis,右擊站點,然后屬性,點擊網站項ip地址的高級按鈕,然后點編輯或添加來新增綁定,主機頭值為空.

下面來獲取url地址進行分析,下面是過程代碼,用來獲取及判斷主機頭,代碼放在默認文檔的首文件index.aspx.cs中

 

代碼:
        /// <summary>
        ///取得二級域主機頭值,并實行轉向
        /// </summary>
        public void checkdomain()
        {
            hostname = httpcontext.current.request.url.host.tostring(); //獲取url主機地址
            userhost = hostname.split(new char[] { '.' });  //數組,以“.”分隔

            //判斷二級域名地址是否符合abc.xrss.cn 這種格式,及數組userhost長度不大于3,否則就跳傳到其它頁
            if (userhost.length > 3)
            {
                httpcontext.current.response.redirect("http://www.xrss.cn/error.aspx");        //跳轉到出錯頁面
return;
            }

            userdomainname = userhost[0].tostring();    //取得數組最前面一組值,及二級域名主機頭

            //進行特定判斷,及是不要用到做為二級域名的主機頭
            if (userdomainname.tolower() == "www" || userdomainname.tolower() == "域名" || userdomainname == null || userdomainname.tostring()=="")
            {
                //你的動作
            }
            else {
                httpcontext.current.response.redirect("/user/");        //跳轉到用戶目錄,即是二級域名所要去到的目錄,當然你也可以跳傳至*.aspx?userid=xxx這樣的鏈接
                                return;
            }

        }


到這里已經可以實現abc.xrss.cn跳轉到指定的頁面或鏈接了,但并不是真正的二級域名,只是url轉向而已。


方法二:真正的二級域名
a.        建立站點
此時我們需要建立兩個站點,一個主站點、一個二級域站點,二個站點的文件目錄為同一目錄,其目錄中有default.aspx及index.aspx兩個文件。建立方法如下:
a). 主站點建立方法參照方法一中的站點建立,不過,主機頭非空,需設為www.xrss.cn  與 xrss.cn ,當然,你也可以設置其它不想用來做二級域的主機頭。站點默認訪問文檔為:default.aspx。
b). 二級域站點建立方法與方法一中的站點建立一樣,其默認訪問文檔為:index.aspx。

b.        現在我們要用到之前建立的二級域站點,我們將用戶的數據放在根目錄下的user目錄中。
下面是/user目錄中默認文檔(index.aspx.cs)的過程代碼,主要用途是將二級域名主機頭存入session,方便調用,也是二級域(用戶區)的首頁文件

 

代碼:
        /// <summary>
        ///取得二級域主機頭值,存入session["userdomainname"]中
        /// </summary>
        public void userdomainnamesession()
        {
            hostname = httpcontext.current.request.url.host.tostring();        //獲取url主機地址
            userhost = hostname.split(new char[] { '.' });        //數組,以“.”分隔

                        //判斷二級域名地址是否符合abc.xrss.cn 這種格式,及數組userhost長度不大于3,否則就跳傳到其它頁
            if (userhost.length > 3)
            {
                httpcontext.current.response.redirect("http://www.xrss.cn//error.aspx");        //跳轉到出錯頁面
                                return;
            }

            userdomainname = userhost[0].tostring();        //取得數組最前面一組值,及二級域名主機頭

                        //進行特定判斷,及是不要用到做為二級域名的主機頭
            if (userdomainname.tolower() == "www" || userdomainname.tolower() == "域名" || userdomainname == null || userdomainname.tostring()=="")
            {
                                //你的動作
            }
            else
            {
                httpcontext.current.session["userdomainname"] = userdomainname; //將二級域名主機頭存入session
            }
        }

        //你對session["userdomainname"]的處理,比如把這個session["userdomainname"]的值是“abc”,那么你可以index.aspx?username=abc,如果不想使用session,你可以在需要用到二級域主機頭時,再來通過url地址獲取。

c.        url重寫
我用的是微軟的urlrewriter,使用方法參見:http://www.microsoft.com/china/msdn/library/webservices/asp.net/urlrewriting.......g.mspx?mfr=true
web.config 中的重寫方法是:
                        <!--user區主機頭url重寫,實現當abc.xrss.cn訪問站點時,經二級域站點,默認首文件為index.aspx,將index.aspx地址重寫到/user/index.aspx-->


代碼: [ 復制到剪貼板 ]
                        <rewriterrule>
                                <lookfor>~/index/.aspx</lookfor>
                                <sendto>~/user/index.aspx</sendto>
                        </rewriterrule>


到這里已經實現二級域了,不管輸入什么樣的主機頭(www.xrss.cn 與 xrss.cn除外,因為這兩個域已經綁定到主站點中,優先訪問到了主站點),就可以實現 abc.xrss.cn訪問到這個用戶目錄了,而且瀏覽器地址欄,出現的也是abc.xrss.cn這樣的域名地址,為了保證此二級域訪問其它頁面也保持二級域名的屬性,也需同時做url重寫,在其它頁面如需用到二級域主機頭(用戶名),從session["userdomainname"] 中取得即可,比如,要在user目錄中的文件 test.aspx ,顯示二級域主機頭名稱,同時需保持瀏覽器地址欄地址為: abc.xrss.cn/test.aspx ,那么在web.config中添加url重寫規則:


代碼:                         <rewriterrule>
                                <lookfor>~/test/.aspx</lookfor>
                                <sendto>~/user/test.aspx</sendto>
                         </rewriterrule>

然后,test.aspx自身通過獲取session["userdomainname"]的值或通過url或取,來顯示二級域主機頭名稱。
當然,你也可以直接將二級域站點單獨綁定到這個user用戶目錄,取得url中的主機頭(用戶名),但這樣可能失去了與主站數據通訊的方便性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明星| 陆良县| 丽水市| 井陉县| 松原市| 临汾市| 怀化市| 金湖县| 沂源县| 罗源县| 肇庆市| 钟山县| 宿迁市| 山阴县| 仁化县| 汉阴县| 武宣县| 临洮县| 阳新县| 青铜峡市| 雷州市| 上犹县| 喀喇| 乐东| 镇江市| 贵阳市| 宁津县| 巫溪县| 剑川县| 固始县| 新昌县| 临西县| 临猗县| 安塞县| 望城县| 夏河县| 托克逊县| 洛扎县| 金塔县| 新竹市| 北川|