2012-04-27 8 views
4

Я работаю над проектом ASP.NET, где мне нужно разбить наше текущее приложение на Канаду/США/Международную систему. Этот раскол позволит определенным пользователям просматривать или изменять только данные в регионах, на которые у них есть разрешение.Как правильно разбить веб-сайт на разные регионы?

Чтобы избежать кошмара обслуживания в будущем, я добавил RegionID к основным таблицам приложения, включая разрешения. Это должно позволить мне легко разделить все, и управлять тем, что людям разрешено видеть и что людям не разрешено видеть. На основе пользователя AD я могу сохранить область по умолчанию, которая избавит их от необходимости видеть экран Splash Region каждый раз, когда они пытаются получить доступ к приложению.

Как я никогда не строил региональное веб-приложение, это звучит довольно просто в моей голове, но прежде чем полностью погрузиться в себя, мне было интересно, есть ли способ «по книге»? Помня о том, что мне больше не придется полностью перестраивать это приложение, поскольку у меня нет времени или ресурсов для этого.

+0

хорошо вопрос! Я должен буду следовать этому – MilkyWayJoe

ответ

1

, на мой взгляд, лучший способ достичь этого - использовать такой же подход, как при наличии разных языков или стран. вероятно, вам понадобится разработать файл, определяющий контекст пользователя, язык-язык, countrycontext-region в вашем случае. Вы можете добиться этого, используя постоянство базы данных с идентификатором для каждого региона в пользователе. Также анонимный - это таблица профилей или использование файлов 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); 
    } 
} 

где регион имеет идентификатор, а пользователь имеет fk в регионе. brgds!