.NET 核心标识。使用一个或两个上下文?
.NET Core Identity. Use one context or two?
我正在努力解决一个基本问题。将我的 ASP.NET 核心身份上下文与我的业务上下文分开或将两者结合起来。
从哲学上讲,将它们分开似乎很好。如果我想在将来的某个时候升级 .NET Core,如果我的身份上下文是独立的,我遇到的问题会更少。
实际上,将它们结合起来似乎是个好主意。否则,我正在创建另一个用户 table 或做一些奇怪的变通方法以从导航属性中获取用户信息。
您如何处理 .NET Core 中的标识上下文?
根据我的经验,将身份上下文与您的业务逻辑分开是个好主意。
- 您可能必须对您的身份数据库进行一些昂贵的加密和其他操作。可能不需要对您的业务数据应用此类加密
- 您可以选择替换,为您的身份数据库制定单独的备份计划和恢复计划。 non-identity数据库可能有自己的计划。
- 更重要的是,有一天,您可能会决定使用第 3 方身份验证提供商,而忘记自己管理身份。届时,您可能会进行一些迁移,丢弃不再需要的身份数据库。
所以,是的,最好使用不同的 context/database。
注意:我假设每个上下文都链接到不同的数据库。这是给定的,但为了清楚起见,将其放在这里。
我正在努力解决一个基本问题。将我的 ASP.NET 核心身份上下文与我的业务上下文分开或将两者结合起来。
从哲学上讲,将它们分开似乎很好。如果我想在将来的某个时候升级 .NET Core,如果我的身份上下文是独立的,我遇到的问题会更少。
实际上,将它们结合起来似乎是个好主意。否则,我正在创建另一个用户 table 或做一些奇怪的变通方法以从导航属性中获取用户信息。
您如何处理 .NET Core 中的标识上下文?
根据我的经验,将身份上下文与您的业务逻辑分开是个好主意。
- 您可能必须对您的身份数据库进行一些昂贵的加密和其他操作。可能不需要对您的业务数据应用此类加密
- 您可以选择替换,为您的身份数据库制定单独的备份计划和恢复计划。 non-identity数据库可能有自己的计划。
- 更重要的是,有一天,您可能会决定使用第 3 方身份验证提供商,而忘记自己管理身份。届时,您可能会进行一些迁移,丢弃不再需要的身份数据库。
所以,是的,最好使用不同的 context/database。
注意:我假设每个上下文都链接到不同的数据库。这是给定的,但为了清楚起见,将其放在这里。