我要求在ASP.NET MVC上构建一个非常复杂的应用程序。它将包括一个个人帐户(授权),其中包含许多相关对象,如:
PresentationLayer.UserAccount : IdentityUser {
virtual ICollection<InnerPaymentCard> cards {get;set;}
virtual ICollection<InnerServiceUsageRecord> cerviceRecords {get;set;}
virtual ICollection<InnerInsuranceUsageRecord> insuranceRecords {get;set;}
virtual UserRating rating {get;set;}
}
此外,注册过程将分为两个步骤:注册和SMS代码确认。此外,对于 InnerPaymentCard 等每项服务,用户必须提供额外的注册(订阅服务)。
我是否应该使用标准的Indentity并使用10+一对多关系和复杂的BLL扩展它,或者编写自己的Indentity服务是否合理?如果是这样,我可以在哪里学习在ASP.NET MVC上实现自己的身份(注册,授权,订阅服务)?
答案 0 :(得分:1)
默认解决方案是否符合您的要求?
根据我的经验,系统的身份验证和授权非常复杂,超出了默认实现的范围。你的系统有多复杂?
根据您的问题,将具有主键的实体的默认解决方案扩展到默认实体并不会增加太多复杂性。但很可能你会启用延迟加载。否则,每个请求都会加载太多数据(或根本没有加载,无论如何你都需要自己加载)。
列出您的要求的完整列表。此外,添加需求可能是一个好主意,这可能会在以后出现(与客户讨论)。然后,列出两种解决方案的缺点和优点,默认一个和您自己的解决方案。这将有助于您选择。