伙计们!
我将开始开发一个营销网站,用户将能够在这个网站上创建帐户。我想将使用子域的用户区域分开,就像 wordpress.com、ning.com 等。如果用户创建了一个帐户,例如:“john”,网站应该在 john.mydomain.com 中对此做出响应用户区,但它将是相同的代码(分隔我的子域)。
我想知道,如何使用代码来识别帐户(在子域中)以显示网站的正确帐户?
PS:当然不是要认证才能显示网站。
谢谢
伙计们!
我将开始开发一个营销网站,用户将能够在这个网站上创建帐户。我想将使用子域的用户区域分开,就像 wordpress.com、ning.com 等。如果用户创建了一个帐户,例如:“john”,网站应该在 john.mydomain.com 中对此做出响应用户区,但它将是相同的代码(分隔我的子域)。
我想知道,如何使用代码来识别帐户(在子域中)以显示网站的正确帐户?
PS:当然不是要认证才能显示网站。
谢谢
我的伙伴和我得到了我们的网站之一。我们有一个包含 SiteId 和域的数据库表。
在一个基本控制器中,当域进来时,我们对其进行解析,然后在数据库中找到合适的 SiteId。所有控制器都继承自这个基本控制器,并且 SiteId 被传递给对我们模型的每次调用。
Admin.Site.com -> SiteId = 1
Frank.Site.com -> SiteId = 2
当有人点击Admin.Site.com
时,1 的 SiteId 被传递给模型以检索数据或保存/编辑/添加/删除它。
这是我们用来获取域的代码:
public Website CurrentWebsite
{
get
{
if (_website == null)
{
var domain = HttpContext.Request.Url.Host;
_website = _websiteRepository.GetWebsiteByDomain(domain);
}
return _website;
}
}
asp.net mvc 中的路由处理在域名之后开始,因此无法使用常规路由处理来捕获它。
您可以创建一个路由处理程序,在评估路由之前将子域添加到路由数据中(从 Request.Url 中获取)。