[英]ASP.NET MVC 4 multi tenancy
在ASP.NET MVC 4中,我看到有[Authorize]屬性,現在有一個對應的[AllowAnonymous]屬性,可以輕松地要求您進行身份驗證以訪問特定的控制器操作。
我需要的是真正的多租戶。 每個用戶只能訪問自己的記錄,除用戶帳戶外的所有記錄應歸單個用戶所有。
在作為Rails插件的Hobo(http://hobocentral.net)中,可以通過在我的ApplicationController中添加以下代碼行來輕松實現此目的:
before_filter :login_required, :except => [:login, :signup, :do_signup, :activate]
然后在我的模型中:
belongs_to :owner, :class_name => "User", :creator => true
# --- Permissions --- #
def create_permitted?
acting_user == owner || !owner_changed?
end
def update_permitted?
acting_user == owner || !owner_changed?
end
def destroy_permitted?
acting_user == owner || !owner_changed?
end
def view_permitted?(field)
owner_is? acting_user or new_record?
end
最后在我模型的控制器中:
def index
hobo_index current_user.modelName
end
ASP.NET MVC是否存在如此簡單而精致的功能? 到目前為止,我已經找到了幾種在ASP.NET MVC中實現多租戶的方法,但是我不確定哪種方法是正確的。 如果有幫助,我也打算使用.NET 4.5和Entity Framework 5。
如果您在asp.net MVC中使用任何類型的內置身份驗證,那么它已經存在,您可以使用類似
HttpContext.Current.User.Identity.Name
如果您不使用某種內部身份驗證機制,則可以執行身份驗證時將用戶將主鍵保存在session
變量中的簡單操作。
Session["User"] = Key;
然后在每個控制器內部取出變量
var key = Session["User"];
並根據密鑰檢索用戶數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.