公司现在要求给客户做商户主页系统,
基本功能是这样的:
1、我们开发了一整套的网页功能,所有的客户共享这一套网页功能,只不过根据客户的不同加载不通的数据
2、我们给每个用户一个帐号和一个域名,同时给他们配一个access数据库,这个access里放的是客户自己的数据,这样用户可以自己修改网页的内容
问题出现了:
1、我如何做到根据用户的域名不同,链接不同的数据库,比如a客户他有一个aAcesss数据库,他的域名是a.163.com,b客户有一个bAccess数据库,他的域名是b.163.com,我如何能根据域名不同加载不同的access数据库呢,因为所有的客户共享的是一套页面程序,只不过根据不同的客户,连接不同的access数据库加载不同的内容

解决方案 »

  1.   

    把多个连接字都写在web.config里
    根据客户不同 使用对应的数据库连接字就可以了
      

  2.   

    客户,域名,数据库,对应一个表.
    然后在系统后台page_load()的时候,或者是onInit动态产生一个连接字符串,然后作为全局变量提交给页面.
    比如说:
    /*
    客户     域名           数据库
    -----    --------     ----------
      a       a.163.com     aAccess
      b       b.163.com     bAccess
      c       c.163.com     cAccess
      ...      ...           ...
    */
      

  3.   

    请问page_load的时候,我怎么知道加载的是哪个域名,又如何知道我链接哪个access数据库,域名可以读出来?
      

  4.   

    当然是在 Page_Load 的时候 判断 运营商的 角色,根据角色再到关系表取相应的连接字符串
      

  5.   

    使用HttpModule就可以了 在App_Code 下面建一个实现IHttpModule接口类然后
    实现函数
    public void Init(HttpApplication context)
    {
        HttpContext httpContext = context.Context;
            string url = httpContext.Request.Url.ToString();
            //然后根据Url决定使用什么数据库。这样的话就可以在Url的后面加上数据库的类型参数。
            url += "?dataBase=你的数据库类型";
            //然后重写Url
            httpContext.RewritePath(url);
    }
    这样在页面的Page_load里面就可以更加参数里的数据库类型来决定用什么数据库了。