【发布时间】:2011-11-03 08:30:15
【问题描述】:
我正在使用ASP.NET 和C# 开发一个博客引擎。主要解决方案由以下几个项目组成
-
DomainModel:存储库的域实体和接口 -
AppService:应用服务、视图模型映射器、消息等。 -
Repositories:EF 存储库、XML 存储库、存根存储库 -
Presentation:实现 MVP 模式(视图、演示者、接口)
用户端项目目前是WebForms web 应用程序,项目快完成了。最后一件事是将整个系统与ASP.NET Membership 集成。有两件事需要考虑。
首先,在博客数据库的会员数据库中只需要一个用户帐户ID。
最后,必须在 UI 项目中实现基于角色的安全性。因为我对分布式应用程序开发、DDD 和其他东西还很陌生,所以我想知道基于角色的安全性的实现是否仅仅是 UI 应用程序的责任,或者还有其他事情需要处理解决方案的层数。据我目前所知,只有视图(网页)必须实现基于角色的安全性并根据当前会话呈现不同的内容并提供不同的功能。但仅此而已吗?
我知道这可能是一个通用问题,当然实施和设计会根据项目需求而有所不同。但是,如果在分布式/分层应用程序中实现基于角色的安全性和表单身份验证时要遵循一般的经验法则,那么事先了解它们会很棒。例如:
- 安全实施是否只是 UI 应用的责任?
- 我能否调整/更改我的域模型和/或其他层的设计,以便更轻松地实施基于角色的安全性,而不是完全依赖 UI 应用程序。
- 在其他层中考虑安全性是否是个好主意,以便 UI 层只是数据的表示以及用户和系统之间的媒介。
【问题讨论】:
标签: .net asp.net asp.net-membership domain-driven-design n-tier-architecture