簡體   English   中英

如何在ASP.Net中向Web應用程序添加Web服務層

[英]How to add web service layer to web application in ASP.Net

我們有一個ASP.Net Web窗體應用程序,其中有用於數據訪問層對象,業務邏輯層對象和表示層對象(Web窗體)的不同文件夾。 我們還為Sql服務器實現了Provider模型。 今天的整個應用程序是帶有Web表單的統一dll文件。

我們現在必須交付一個單獨的Web應用程序,該Web應用程序將作為此應用程序的外部網訪問。 我們正在考慮將其實現為表示層應用程序,以調用Web服務(以提高安全性),而不是直接連接到數據庫。 我們面臨以下考慮:

  1. 有沒有一種方法可以使用(重用)已經在應用程序中實現的業務邏輯,而無需在Web服務組件中復制源代碼? 由於將在Extranet應用程序中自動實現在應用程序中修復業務邏輯和數據訪問邏輯,這將使維護更加容易。

  2. 我們今天正在使用表單身份驗證。 Extranet應用程序是否可以對Extranet使用相同的用戶,成員身份,角色和配置文件,以便可以從現有應用程序管理所有用戶? 將此身份驗證視為Web服務嗎?

  1. 是。 您甚至可以嘗試直接引用較大的* .dll,但是,建議按照您的圖層將較大的* .dll拆分為較小的* .dll。 首先是數據層,然后是業務層,然后是表示層。 這樣,您的Web服務項目就只能引用前兩個。

當然,另一種方法是從托管您現有的表示層的同一應用程序中公開Web服務。

  1. 從服務器的角度來看,瀏覽器對網頁的調用與富客戶端對Web服務的調用之間沒有區別。 如果您使用表單身份驗證來保護Web服務,則服務器將期望格式良好的表單cookie,然后您就可以從Web服務代碼中訪問context.User ,就像在Web應用程序代碼中一樣。

幾年前,我寫了一篇關於如何在Web應用程序與桌面/ 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

這應該為您提供所需的背景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM