0

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

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

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

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

4

2 回答 2

1

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

您可能会选择 WCF 服务(使用双 tcp?)。

于 2013-05-02T09:52:34.927 回答
0

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

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

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

如果您需要将相同的业务逻辑应用于不同的服务,则应该使用 dll 方法。实际上:您有两个完全独立的网站,它们使用相同的身份验证逻辑。请记住,对使用相同数据层的网站使用这种方法,在大多数情况下会迫使您在更新所有网站上的 dll 时让“不推荐使用的方式”与新实现一起工作。

问候,

于 2013-05-02T10:01:47.277 回答