【问题标题】:Subdomains in Asp.Net MVC ApplicationAsp.Net MVC 应用程序中的子域
【发布时间】:2010-11-11 17:58:30
【问题描述】:

伙计们!

我将开始开发一个营销网站,用户将能够在该网站上创建帐户。我想将使用子域的用户区域分开,就像 wordpress.com、ning.com 等。如果用户创建了一个帐户,例如:“john”,网站应该在 john.mydomain.com 中对此做出响应用户区,但它会是相同的代码(分隔我的子域)。

我想知道,如何编写代码来识别帐户(在子域中)以显示网站的正确帐户?

PS:当然不是要认证才能显示网站。

谢谢

【问题讨论】:

    标签: asp.net-mvc subdomain user-accounts infrastructure


    【解决方案1】:

    我和我的伙伴得到了我们的网站之一。我们有一个保存 SiteId 和域的数据库表。

    在一个基本控制器中,当域进来时,我们对其进行解析,然后在数据库中找到合适的 SiteId。从这个基本控制器继承的所有控制器,并且 SiteId 被传递给对我们模型的每次调用。

    Admin.Site.com -> SiteId = 1
    Frank.Site.com -> SiteId = 2
    

    当有人点击Admin.Site.com 时,SiteId 为 1 被传递给模型以检索数据或保存/编辑/添加/删除它。

    这是我们用来获取域名的代码:

    public Website CurrentWebsite
    {
        get
        {
            if (_website == null)
            {
                var domain = HttpContext.Request.Url.Host;
                _website = _websiteRepository.GetWebsiteByDomain(domain);
            }
            return _website;
        }
    }
    

    【讨论】:

      【解决方案2】:

      asp.net mvc 中的路由处理在域名之后开始,因此使用常规路由处理无法捕获它。

      您可以创建一个路由处理程序,在评估路由之前将子域添加到路由数据中(从 Request.Url 中获取)。

      【讨论】:

        猜你喜欢
        • 2010-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        • 2017-01-12
        相关资源
        最近更新 更多