4

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

为了避免将来发生维护噩梦,我在应用程序的主表中添加了一个 RegionID,包括权限。这应该让我能够轻松地拆分所有内容,并管理允许人们看到的内容和不允许人们看到的内容。然后,根据 AD 用户,我可以保存他们的默认区域,这将让他们在每次尝试访问应用程序时都不必看到区域启动画面。

由于我从未构建过区域 Web 应用程序,这在我的脑海中听起来相当简单,但在我完全投入之前,我想知道是否有一种“按部就班”的方式来做到这一点?请记住,我宁愿不必完全重新构建此应用程序,因为我没有时间或资源这样做。

4

1 回答 1

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!

于 2012-04-27T21:27:03.903 回答