【发布时间】:2014-03-19 08:58:06
【问题描述】:
我正在创建一个多租户的 ASP.NET MVC 网站。
- 站点是分层的,所有站点都不可避免地指向一个“根”站点。
- 创建超级管理员用户。
是否有建议的方法来处理这些对象的初始创建?以下是我看到的选项:
- 将它们存储在 Web.config 中(但如果我存储超级管理员的密码,它们是否安全?)
- 在 Seeding 方法中创建所有这些对象(我使用的是 Entity Framework CodeFirst)。
- 使用 PreApplicationStartMethod 确保它们存在。
这里的标准方法是什么?
【问题讨论】:
-
你有没有考虑过使用类似
SimpleMembershipProvider的东西? -
我正在使用身份(这是 SimpleMembership 的升级版)-但这并不能解决我的问题-我认为该站点需要能够拥有超级管理员而不直接依赖身份框架 - 否则,如何创建第一个超级管理员?
-
我没有使用
Identity,所以我不确定我的建议是否适用于您的场景,但首先 - 您并不真的希望通过播种来完成此操作。一般来说,播种是为了开发目的,以便使用一些虚拟数据。 web.config 也是一个不好的地方。你可以用SimpleMembershipProvider和Identity做什么是这样的:odetocode.com/blogs/scott/archive/2012/09/05/… -
并且还使用类似这样的东西:
if (!context.Database.Exists()) { // Create the SimpleMembership database without Entity Framework migration schema ((IObjectContextAdapter)context).ObjectContext.CreateDatabase(); }我认为这是更优雅的方式,因为这样你就可以将事情分开。 -
这正是我在我的项目中所做的。我将发布我如何使用
SimpleMembershipProvider完成此操作的答案,因为它非常大,看看您是否可以调整它以与Identity一起使用,如果它也可以与Identity一起使用,请提供反馈:)
标签: c# asp.net-mvc multi-tenant