我目前有一个分层架构,如下所示:
Repository<T>
,UnitOfWork
(特定于EF)以及所有EF内容,例如DbContext
,EntityTypeConfiguration
等。我使用的是贫血领域模型,所以代表问题领域的基本POCO。
关于通过ASP.NET WebApi
公开此问题,我有几个问题。
Thread.CurrentPrincipal
让Identity
检查给定角色,并在WebApi中设置它吗? Mvc申请?那里有什么好的例子可以说明我所说的这种情况吗?
BTW - 我使用ASP.NET MVC 5来提供应用程序的shell(SPA),然后前端将是所有AngularJS。
答案 0 :(得分:1)
关于您的服务应该具有正确答案的第一个问题,我认为它应该是所有应用程序中的原则:
服务应具有足够的安全性来保护数据免受不受欢迎的用户的侵害。
一旦您创建服务并将其公开,您就会面临可能的攻击,当然,复杂的安全规则可能会增加开发时间,而某些情况可能会导致性能下降;衡量威胁的级别并相应地规划您的安全性。
WebApi是为了通过Http / Rest提供服务而创建的,所有原则和功能内置都是用这个意图制作的,所以对于你的第二个问题,就像你在最后推断它是一个服务层但是一个Http /休息服务层。
WebApi使用属性Authorize
来强制执行安全性,因为.NET框架通常可以从中继承并扩展它。您可以详细了解here。
由于您使用的是Angularjs,即使您需要MVC5来使用WebApi,我的建议是您不使用MVC剃须刀或任何其他服务器技术来呈现您的页面。