在 ASP.NET MVC 结构中向用户添加公司

Adding a company to users in ASP.NET MVC structure

我最近一直在阅读和使用 ASP.NET MVC,想弄清楚它是否会成为现有产品的新框架。

该产品由一个多用户网站组成,客户由我创建并添加到他们各自的公司。然后每个用户都可以在他自己的公司范围内做一些事情,添加数据等。

我将如何着手在 MVC 中创建类似的结构? 我基本上想成为可以创建新用户、将他们添加到公司并控制他们的权利的 "super-admin"。 普通用户在其公司内还将具有不同的用户角色(管理员、用户、来宾)。

我已经设置了几乎所有其他内容(MVC 和 Entity framework 很棒),但我只需要最后一层分离。

非常感谢任何帮助。

这真的有两部分。首先是角色。只需在公司的角色与整个应用程序的角色之间创建明确的指定,例如:"Admin"、"CompanyAdmin"、"CompanyUser" 和 "CompanyGuest"。在那里,我的字面意思是 "Company",而不是特定公司名称的占位符。您应该只有一组角色适用于所有公司用户。

第二部分是一种所有权授权形式。每个用户都被分配给一家公司,当然是通过您的用户实体上的外键。您的路由将包含一些标识正在使用的公司的组件,无论是通过子域还是仅路径的一部分,即 /FooInc/Bar/Baz。在您的操作中,您将使用此组件从您的持久存储中查找公司,然后将其与分配给用户的公司进行比较。如果两者不匹配,那么你 return 一个 403。否则,你让用户继续。

有很多方法可以完成。您可以使用动作过滤器、基本控制器等。这在很大程度上取决于您和您的应用程序的需要。无论如何,ASP.NET MVC 非常有能力处理这样的事情。