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!