簡體   English   中英

可從InputStream獲得的肥皂服務憑證

[英]Soap service credential available from InputStream

對於我正在做的項目,我正在使用SOAP服務從另一個系統訪問一些數據。 我將SOAP服務作為對Web的引用添加到ASP.NET(C#)項目。

現在,該服務有點復雜,因為必須先使用Cookie對用戶進行身份驗證(不要問)。 所以我們要做的是:

  • 用戶訪問我們的網站。
  • 網站將用戶重定向到服務所在服務器上的登錄頁面。
  • 用戶登錄,並執行FormsAuthentication.SetAuthCookie
  • 用戶被重定向回我們的網站。 然后將用戶轉發到頁面,該頁面應包含來自Web服務的數據。

該頁面將webservice實例化為如下對象:

MyService.MyServiceservice = new MyService.MyService();

然后,我將憑據放入(現在我進行了硬編碼):

service.PreAuthenticate = true;
service.Credentials = new NetworkCredential("Wim", "mypass");

當我在該服務上調用方法時,我希望包含該服務器的服務器上的Global.asax能夠“捕獲”請求中的用戶名和密碼。 但是我無法以某種方式獲取它。

不要問為什么必須這樣做,讓我們稱它為..不幸的是:P

有誰知道如何從服務器端的請求中獲取用戶名和密碼,最好是在Global.asax Application_BeginRequest中。

服務使用哪種身份驗證模式? 基本的摘要? 等等

如果是基本密碼,則用戶名和密碼將作為以Base64編碼的字符串的形式出現在http標頭中,該字符串類似於GWxhCGRpbjpvcGVuIFNlc2FtZG ==。

您需要對其進行解碼,然后您將看到用戶名和密碼,格式為user:password。

您在哪里尋找/期望找到用戶名和密碼?

附帶說明:如果您也在編寫服務,則可能應該使用“身份驗證”模塊,而不要在全局中執行。 掛接到HttpModule中的global的OnAuthenticate事件中,並在那里進行身份驗證。

暫無
暫無

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

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