跨多个网站分离共同逻辑的策略

时间:2013-05-02 09:43:33

标签: asp.net

我有一个场景,我有多个网站使用commnon dll进行身份验证和一般用户详细信息获取。

我现在需要使用稍微不同的登录逻辑来更新公共dll,这意味着我需要将这个新dll推送到每个网站并为每个网站执行一个发布过程。

我想知道在某种Web服务中托管常用身份验证方法是否更好,然后让网站在内部调用。它会是一个内部Web服务吗? ajax回调来自服务器端唯一的网站?或者坚持使用dll方法以确保代码更改不会破坏网站?

在不使用dll执行此类任务时是否存在任何安全问题?

2 个答案:

答案 0 :(得分:1)

使用网络服务似乎是一种很好的方法。我将减少内存使用量,并且可以独立于wesites更新(如果需要)。

你可以选择WCF服务(使用双tcp?)。

答案 1 :(得分:0)

我认为这两种方法都有效,但我们应该牢记它们之间存在显着差异。

首先,所有这些都取决于您所使用的语言,因为有时候最好的理论答案并不总是很容易在每种语言中实现,因此实际上无法使用。

因此,考虑到这一点,对我来说最好的方法是拥有一个内部网络服务,负责处理有关此“身份验证和一般用户详细信息模块”的所有请求,假设所有网站使用相同的数据库(或数据层)(否则,您将需要为每个数据库创建一个Web服务,这是另一个完全不同的故事)。这种方法将为您提供灵活性可维护性。您可以对此Web服务使用直接ajax请求,或者从您的网站服务器进行调用,并且他们已经使用该信息回复浏览器。 (这第二个选项更耗时,但更安全,如果它是一个真正的内部Web服务(即托管在同一台机器上,滞后将不会明显)。

如果您需要将相同的业务逻辑应用于不同的服务,则应该使用dll方法。实际上:您有两个完全分离的网站,它们使用相同类型的身份验证逻辑。请记住,对于使用相同数据层的网站,使用此方法会在大多数情况下强制您使用“弃用的方式”与新实现一起使用,同时在所有网站上更新dll。

此致