2012-04-27 69 views
4

我工作的一个ASP.NET项目,我需要我们的当前应用程序分成加拿大/美国/国际体系。此拆分将允许某些用户只查看/修改他们有权访问的区域中的数据。如何正确将网站分成不同的地区?

为了避免将来我添加了一个RegionID到应用程序的主表,包括权限的维护的噩梦。这应该允许我轻松地将所有事情分开,并管理允许人们看到什么以及哪些人不被允许看到。基于广告的用户,我可以将其保存为他们节省每一次他们试图访问该应用程序时看到的区域闪屏的麻烦,它们的默认区域。

由于我从未构建过区域Web应用程序,这听起来相当简单,但在我完全沉浸在其中之前,我想知道是否有“通过本书”的方式来执行此操作?请记住,我宁可不要,因为我没有足够的时间或资源这样做完全重新构建这个应用程序。

+0

很好的问题!我必须遵循这一点 – MilkyWayJoe 2012-04-27 21:23:30

回答

1

在我看来,实现这一目标的最佳方式是使用与您拥有不同语言或国家时相同的方法。或许你需要开发定义用户,languagecontext,countrycontext的背景文件 - 区域你的情况 - 。您可以使用数据库持久性来实现这一点,并为用户中的每个区域设置一个ID - 匿名也可以 - 配置文件表或使用cookie来保存regioncontext的详细信息。那么你可以在正常的类中使用这些信息来显示考虑到用户区域的信息。

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); 
    } 
} 

其中区域具有ID和用户具有FK到区域。 brgds!