2009-08-24 73 views
5

我应该从控制器访问asp.net成员类和结果传递给服务层,或者直接从业务层访问它?呼叫asp.net Membership类?

因为一方面这看起来像业务逻辑,应该在服务层中处理,但我不想将服务层绑定到Web命名空间,因为这可能会成为一个Windows应用程序向下路。

回答

6

答案,可以使用国际奥委会创建服务层采用的是会员接口。该网站的实施可以使用网络名称空间。而Windows应用程序可以有不同的实现。并且由于您可以注入该依赖项,因此您的服务层不必更改:-)

+0

这将是我的下一个攻击计划,谢谢你的验证。 – 2009-08-25 00:53:12

0

是否真的使用的System.Web一个问题吗?这是不超过其直接连接到System.Configuration,或System.IO不同。任何应用程序都可以使用它,无论它是否“脱机”。

我经常配合我的web应用程序到更经典的,虽然作为“的WinForms”组件组件,以访问有用的集合对象和等。

+0

我的想法是,如果我改变为winforms,它会更正确,不会依赖于不相关的程序集。承认它有点微不足道。 – 2009-08-25 00:52:35

3

ASP.NET成员身份是Web特定的,因此应该在Controller中进行访问。 MHO是服务层不应该硬连线到网络上。因此,要添加/删除用户,请通过Controller执行此操作。

OTOH,在服务层中,您可以读取Thread.CurrentPrincipal.Identity,这是非特定于Web的,但恰好与ASP.NET成员完全兼容。所以,如果你只需要获得当前用户,你就可以做到这一点,而不用担心分离问题。