繁体   English   中英

ASP.NET MVC 4多租户

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM