【发布时间】:2012-07-23 20:34:25
【问题描述】:
在 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 multi-tenant hobo