`
varsoft
  • 浏览: 2434394 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

二级域名用asp.net 2.0的实现方案

阅读更多
本人所了解有两种方案,可能还有其的方式,希望大家多多讨论!
基本思路:
1. 域名支持泛解析,即是指:把A记录 *.域名.com 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;
2. 为了实现完全的二级域,建两个站点,一个为主站用,一个为用户用,两个站点目录都指到一个同一网站目录
3. 在Web程序中或取URL来源中的二级域名主机头,比如:abc.域名.com 中的 abc;
4. 用获取来的二级域名名称,存入Session,方便取用
5. 用获取来的二级域名名称,用URL重写地址

实现方法:
域名A记录解析不用说了吧 ^_^,就是做一个*.域名.com的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.域名.com 这种格式,及数组UserHost长度不大于3,否则就跳传到其它页
if (UserHost.Length > 3)
{
HttpContext.Current.Response.Redirect("http://www.域名.com/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.域名.com跳转到指定的页面或链接了,但并不是真正的二级域名,只是URL转向而已。


方法二:真正的二级域名
a. 建立站点
此时我们需要建立两个站点,一个主站点、一个二级域站点,二个站点的文件目录为同一目录,其目录中有Default.aspx及Index.aspx两个文件。建立方法如下:
a). 主站点建立方法参照方法一中的站点建立,不过,主机头非空,需设为www.域名.com 与 域名.com ,当然,你也可以设置其它不想用来做二级域的主机头。站点默认访问文档为: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.域名.com 这种格式,及数组UserHost长度不大于3,否则就跳传到其它页
if (UserHost.Length > 3)
{
HttpContext.Current.Response.Redirect("http://www.域名.com//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.域名.com访问站点时,经二级域站点,默认首文件为Index.aspx,将Index.aspx地址重写到/User/Index.aspx-->


代码: [ 复制到剪贴板 ]
<RewriterRule>
<LookFor>~/Index\.aspx</LookFor>
<SendTo>~/User/Index.aspx</SendTo>
</RewriterRule>


到这里已经实现二级域了,不管输入什么样的主机头(www.域名.com 与 域名.com除外,因为这两个域已经绑定到主站点中,优先访问到了主站点),就可以实现 abc.域名.com访问到这个用户目录了,而且浏览器地址栏,出现的也是abc.域名.com这样的域名地址,为了保证此二级域访问其它页面也保持二级域名的属性,也需同时做URL重写,在其它页面如需用到二级域主机头(用户名),从Session["UserDomainName"] 中取得即可,比如,要在User目录中的文件 test.aspx ,显示二级域主机头名称,同时需保持浏览器地址栏地址为: abc.域名.com/test.aspx ,那么在web.config中添加URL重写规则:


代码: <RewriterRule>
<LookFor>~/test\.aspx</LookFor>
<SendTo>~/User/test.aspx</SendTo>
</RewriterRule>

然后,test.aspx自身通过获取Session["UserDomainName"]的值或通过URL或取,来显示二级域主机头名称。
当然,你也可以直接将二级域站点单独绑定到这个User用户目录,取得URL中的主机头(用户名),但这样可能失去了与主站数据通讯的方便性。


分享到:
评论

相关推荐

    RL Rewriting in ASP.NET 2.0

    微软的url重写组件原代码, 可以实现C#二级域名重写

    asp.net 2.0 根据客户端IP地址进行自动跳转(二级域名或子目录)

    根据客户端IP地址进行自动跳转(二级域名或子目录)

    asp.net知识库

    ASP.NET2.0 ObjectDataSource的使用详解(2) TextDataSource(1) — DataSourceControl内幕 TextDataSource(2) — 翠花,上“数据” ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认...

    淘宝客网站

    请先保证网站asp.net2.0运行环境,asp.net的url伪静态支持,根目录有写入和修改权限 1、ftp上传你网站目录(不支持二级目录) 2、http://你的域名 3、后台登录http://你的域名/admin/ 你可以改admin目录登录时候自己...

    沙之丘淘宝客程序商业版(原cndian淘) v6.1

    请先保证网站asp.net2.0运行环境,asp.net的url伪静态支持(配置看下面),根目录有写入和修改权限1、ftp上传你网站目录(不支持二级目录)2、http//你的域名/admin/login.aspx 你可以改admin目录登录时候自己注意下...

    asp.net 1.1/ 2.0 中快速实现单点登陆

    问题: 网站有bbs.xxx.com / main.xxx.com / pay.xxx.com 这三个不同的二级域名站,要实现任何一二级域名处登陆,其他各二级域名的站均登陆。 解决办法: 设置cookie的domain属性...而如果你使用asp.net 2.0 和fo

    缩略图水印组件3.0Demo

    ImageWaterMark3.0缩略图水印组件是基于Asp.Net2.0 C#.Net WebForm而开发的全功能组件,无需再服务器端安装AspJpeg组件,它的技术特点目前版本新增加了透明浮雕功能、水印平铺等,目前也是国内唯一支持透明浮雕的...

    仿赶集网站模板.net分类信息管理系统下载

     网软志成是基于微软 .Net 平台开发的分类信息管理系统,它集成了自定义信息发布表单、整站伪静态HTML、分站顶级或二级域名绑定、分类/分站模板管理、IP自动跳转、搜索引擎优化、网银支付、道具、短信/邮箱验证、...

    网软志成分类信息网站系统.net官方商业版

    各分站可以独立管理,如分站顶级或二级域名、网站基本设置、关健词优化、友情链接、常用电话、网址导航、广告、选用模板风格、分站权限分配。 完善的信息发布过滤系统 后台可设置信息发布是否需在通过审核、信息...

    全诚商城生成HTML多用户版 v5.1 SQL.rar

    和上面主站点指向同一个文件目录,主机头留空,给这个站点添加一个通配符应用程序映射(IIS站点属性 -&gt;主目录 -&gt; 配置),这个映射的目的是要asp.net ISAPI接管任何没有在IIS里明确的二级域名站点. 4 进入系统后台,在...

    .net开源的综合开发框架wojilu框架.zip

    支持静态资源(css/js/图片)和动态页面的分离(通过二级域名分离);支持网址无后缀名(或 html 等其他任意后缀名),支持符合 SEO 的良好 url 风格;默认使用依赖注入容器和 AOP 容器,轻松支持二次扩展开发。丰富的缓存...

    思若B2B电子商务网站管理系统 v1.0 bulid 081030.rar

    思若B2B.Net电子商务网网站管理系统是一套仿阿里巴巴,慧聪360等网站的互联网网站管理系统,系统采用微软ASP.Net2.0开发,数据库采用微软SQLSERVER,同时支持ACCESS,SQL7.0,SQL2000,SQ2005。 1、无人执守生成。...

    缩略图水印组件 v3.0 Demo

    软件介绍 ImageWaterMark3.0缩略图水印组件是基于Asp.Net2.0 C#.Net WebForm而开发的全功能组件,无需再服务器端安装AspJpeg组件,它的技术特点目前版本新增加了透明浮雕功能、水印平铺等,目前也是国内唯一支持透明...

    ImageWaterMark3.0缩略图水印组件

    ImageWaterMark3.0缩略图水印组件是基于Asp.Net2.0C#.NetWebForm而开发的全功能组件,无需再服务器端安装AspJpeg组件,它的技术特点目前版本新增加了透明浮雕功能、水印平铺等,目前也是国内唯一支持透明浮雕的处理...

    行车网整站源码 v2.0

    行车网基于三层架构,采用 asp.net + sqlserver2005 开发,功能俱全、性能稳定,负载能力强,前端页面采用DIV+CSS设计,并且页面地址URL重写,...会员网站二级域名需要进行域名泛解析,并且修改配置web.config文件!

    中英文响应式企业网站 v2.2.rar

    开发环境为IIS,数据库为ACCESS,使用.net 2.0开发。 中英文响应式企业网站前台页面 中英文响应式企业网站后台管理 后台路径:域名/gladmin/index.asp 管理员用户名密码是:admin admin888。 后台页面 相关...

    青乌序GDS(qwxgds) v1.0.5.510.zip

    4、系统不支持目录安装,请以根目录的形式安装,及主域名或二级域名下直接安装。 三、安装方法 1、请去qingwuxu官网下载相关程序,官网网址:http://www.qingwuxu.com。 2、把本压缩包中 “upload” 目录下的所有...

    沙之丘淘宝客官方 v4.0 免费版

    请先保证网站asp.net2.0运行环境,asp.net的url伪静态支持(配置看下面),根目录有写入和修改权限 1、ftp上传你网站目录(不支持二级目录) 2、后台登录http://你的域名/admin/login.aspx 你可以改admin目录登录...

    桃源网络硬盘.Net v5.2

    为每个等级设置下载速度上限、开启二级域名及等级费用。 43.用户分组功能,可设定一组用户文件的存放盘符及路径,可前台选择,并可多网站管理。 44.允许/禁止的上传扩展名设定,编辑、查看、播放的扩展名设定...

Global site tag (gtag.js) - Google Analytics