如何正确地将网站分成不同的区域?

时间:2012-04-27 21:20:31

标签: c# asp.net e-commerce regional-settings

我正在开发一个ASP.NET项目,我需要将当前的应用程序拆分为加拿大/美国/国际系统。此拆分将允许某些用户仅查看/修改他们有权访问的区域中的数据。

为了避免将来出现维护噩梦,我已将RegionID添加到应用程序的主表中,包括权限。这应该可以让我轻松地分解所有内容,并管理允许人们看到的内容以及不允许人们看到的内容。基于AD用户,我可以保存他们的默认区域,这样可以避免每次尝试访问应用程序时看到Region Splash屏幕的麻烦。

由于我从未构建过区域性网络应用程序,这听起来相当简单,但在我完全潜入之前,我想知道是否有“按书”的方式来做到这一点?请记住,我宁愿不必完全重建这个应用程序,因为我没有时间或资源这样做。

1 个答案:

答案 0 :(得分: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);
    }
}

其中region具有ID,用户具有fk到region。 brgds!