[英]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.