【问题标题】:How to properly split a website into different regions?如何正确地将网站拆分为不同的区域?
【发布时间】:2012-04-28 05:33:20
【问题描述】:
我正在处理一个 ASP.NET 项目,我需要将我们当前的应用程序拆分为加拿大/美国/国际系统。此拆分将允许某些用户仅查看/修改他们有权访问的区域中的数据。
为了避免将来发生维护噩梦,我在应用程序的主表中添加了一个 RegionID,包括权限。这应该让我能够轻松地拆分所有内容,并管理允许人们看到的内容和不允许人们看到的内容。根据 AD 用户,我可以保存他们的默认区域,这样他们每次尝试访问应用程序时都可以省去看到区域启动画面的麻烦。
由于我从未构建过区域 Web 应用程序,这在我的脑海中听起来相当简单,但在我完全投入之前,我想知道是否有一种“按部就班”的方式来做到这一点?请记住,我宁愿不必完全重新构建此应用,因为我没有时间或资源这样做。
【问题讨论】:
标签:
c#
asp.net
e-commerce
regional-settings
【解决方案1】:
在我看来,实现这一目标的最佳方法是使用与使用不同语言或国家/地区时相同的方法。可能您需要开发一个文件来定义用户的上下文、语言上下文、国家/地区上下文-在您的情况下是区域-。您可以使用数据库持久性和用户中每个区域的 ID 来实现这一点 - 匿名也可以 - 配置文件表或使用 cookie 来保存区域上下文的详细信息。然后您可以在考虑用户区域的情况下在显示信息的普通类中使用该信息。
public Region RegionContext
{
get
{
if (this.user != null &&
this.user.Region!= null)
return this.user.Region;
var region= _region.GetAllRegions().FirstOrDefault();
return region;
}
set
{
if (this.user == null)
return;
this.user.region = value;
_user.UpdateUser(this.User);
}
}
其中 region 有 ID,user 有一个 fk to region。
brgds!