【问题标题】:How to add web service layer to web application in ASP.Net如何在 ASP.Net 中将 Web 服务层添加到 Web 应用程序
【发布时间】:2014-10-28 06:34:14
【问题描述】:

我们有一个 ASP.Net Web 表单应用程序,其中我们有不同的文件夹用于数据访问层对象、业务逻辑层对象和表示层对象(Web 表单)。我们还为 Sql server 实现了 Provider 模型。今天的整个应用程序是一个统一的 dll 文件,带有 web 表单。

我们现在必须交付一个单独的 Web 应用程序,该应用程序将作为该应用程序的外联网访问。我们正在考虑将其实现为一个表示层应用程序,并调用 Web 服务(以提高安全性),而不是直接连接到数据库。我们面临以下考虑:

  1. 有没有一种方法可以使用(重用)已经在应用程序中实现的业务逻辑,而无需复制 Web 服务组件中的源代码?这将使维护更加容易,因为修复应用程序中的业务逻辑和数据访问逻辑将在外联网应用程序中自动生效。

  2. 我们今天正在使用表单身份验证。 Extranet 应用程序是否也可以使用相同的用户、成员资格、角色和配置文件用于 Extranet,以便可以从现有应用程序管理所有用户?此身份验证是否会被视为 Web 服务?

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    1. 是的。您甚至可以尝试直接引用大 *.dll,但是,建议将大 *.dll 拆分为较小的,跟随您的层。首先是数据层,然后是业务层,然后是表示层。这样,您的 Web 服务项目只能引用前两个。

    当然,另一种方法是从托管现有表示层的同一应用程序中公开 Web 服务。

    1. 从服务器的角度来看,浏览器对网页的调用与富客户端对 Web 服务的调用没有区别。如果您使用表单身份验证保护您的 Web 服务,服务器将期望一个格式正确的表单 cookie,然后,您将能够从 Web 服务代码中访问 context.User,就像您在 Web 应用程序代码中一样。

    几年前,我写过一篇关于如何在网络应用和桌面/网络服务应用之间共享表单身份验证的博客。

    http://www.wiktorzychla.com/2008/02/clickonce-webservice-and-shared-forms.html

    一段时间后,我用另一个条目更新了这个主题,说明如何对 WCF 做同样的事情

    http://www.wiktorzychla.com/2010/04/aspnet-forms-authentication-sharing-for.html

    这应该为您提供所需的背景。

    【讨论】:

      猜你喜欢
      • 2011-10-10
      • 2011-08-11
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多