使用 Inno Setup 的 SOAP Web 服务
SOAP Web Service with Inno Setup
在使用 Inno Setup 创建安装程序时,需要在安装过程中验证用户的凭据。该应用程序已经投入生产一段时间,唯一需要移动到安装程序的原因是 Web 浏览器中对 NPAPI 的支持被弃用。已经有一种方法可以让应用程序在启动我试图利用的应用程序之前验证用户的凭据,即通过 SOAP 请求。验证过程只是不确保用户获得授权,而是向他们分配一个令牌,以防止在应用程序 运行 期间必须多次发送他们的信息。
我的问题是,有没有办法在安装过程中发出 SOAP 请求来验证用户的凭据?如果是这样,这将如何实现?
SOAP 只是一个基于 HTTP 的 XML。
所以你可以使用 WinHttpRequest
class:
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('GET', 'http://soapserver.example.com/', False);
WinHttpReq.SetRequestHeader('Content-Type', 'application/soap+xml;charset=UTF-8');
WinHttpReq.SetRequestHeader('SOAPAction', '...');
WinHttpReq.Send('<data/>');
{ WinHttpReq.ResponseText will hold the SOAP response }
另见 。
要解析 SOAP 响应,您可以使用 Msxml2.DOMDocument
class:
How to read and write XML document node values?
在使用 Inno Setup 创建安装程序时,需要在安装过程中验证用户的凭据。该应用程序已经投入生产一段时间,唯一需要移动到安装程序的原因是 Web 浏览器中对 NPAPI 的支持被弃用。已经有一种方法可以让应用程序在启动我试图利用的应用程序之前验证用户的凭据,即通过 SOAP 请求。验证过程只是不确保用户获得授权,而是向他们分配一个令牌,以防止在应用程序 运行 期间必须多次发送他们的信息。
我的问题是,有没有办法在安装过程中发出 SOAP 请求来验证用户的凭据?如果是这样,这将如何实现?
SOAP 只是一个基于 HTTP 的 XML。
所以你可以使用 WinHttpRequest
class:
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('GET', 'http://soapserver.example.com/', False);
WinHttpReq.SetRequestHeader('Content-Type', 'application/soap+xml;charset=UTF-8');
WinHttpReq.SetRequestHeader('SOAPAction', '...');
WinHttpReq.Send('<data/>');
{ WinHttpReq.ResponseText will hold the SOAP response }
另见 。
要解析 SOAP 响应,您可以使用 Msxml2.DOMDocument
class:
How to read and write XML document node values?