Web services 用于.Net CF客户端的Apex Web服务身份验证

Web services 用于.Net CF客户端的Apex Web服务身份验证,web-services,compact-framework,oracle-apex,Web Services,Compact Framework,Oracle Apex,我们正在开发一个条形码应用程序,在运行Windows mobile 5.0 Pocket PC的移动计算机上运行,它需要从Oracle数据库中获取数据 Apex已经设置好了,但是如何使用Apex的本机身份验证创建安全的Web服务?如何设置“仅限HTTPS” 更新 我现在可以在浏览器中调用…?wsdl链接,看起来不错。它也在项目中注册为WebReference 但当我运行以下代码时: CONTAR_USUARIOSService service = new CONTAR_USUARIOSServi

我们正在开发一个条形码应用程序,在运行Windows mobile 5.0 Pocket PC的移动计算机上运行,它需要从Oracle数据库中获取数据

Apex已经设置好了,但是如何使用Apex的本机身份验证创建安全的Web服务?如何设置“仅限HTTPS”

更新

我现在可以在浏览器中调用…?wsdl链接,看起来不错。它也在项目中注册为WebReference

但当我运行以下代码时:

CONTAR_USUARIOSService service = new CONTAR_USUARIOSService();
System.Net.NetworkCredential pocket = new System.Net.NetworkCredential("pocket", "000");
service.Credentials = pocket;
double resultado = service.CONTAR_USUARIOS();
我得到这个错误:

System.Net.WebException was unhandled
  Message="WebException"
  StackTrace:
       at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String     methodName, Object[] parameters, WebClientAsyncResult asyncResult)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       at Supernorte.Recebimento.ContarUsuariosWebReference.CONTAR_USUARIOSService.CONTAR_USUARIOS()
       at Supernorte.Recebimento.Login..ctor()
       at Supernorte.Recebimento.MainForm.mostrarLogin()
       at Supernorte.Recebimento.MainForm..ctor()
       at Supernorte.Recebimento.Program.Main()

我收到一个“未经授权”的错误。

如果您通过web服务路由Oracle输入和输出(我个人仍在努力解决这一问题),您可能可以通过这种方式访问您的信息

添加web引用

它将询问您上传Web服务的URL。我猜这可能是一个你自己的网站,但我使用我们的内部服务器

你可以看到,我有一个默认的网页,在那里我加载了我一直坚持的可用服务。1 MainFrame.svc`本来是我的“大服务”,但后来我意识到我需要做的远不止一次,所以我创建了下一个“Erp服务”

无论如何,在我选择了
ErpService.svc
之后,我得到了这个,我将默认的Web引用名称更改为ErpService1。我个人发现,如果我需要编辑或修改服务,XML配置文件会变得一团糟,所以我只需删除Service1并添加Service2

我添加了一个名为ErpClass1.cs的新类

使用我的项目名称空间添加对我的Web服务的引用,然后开始编码

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using AcpMobile5.ErpService1;

namespace AcpMobile5 {

  class ErpClass1 {

    private ErpService m_erpService;

    public ErpClass1() {
      m_erpService = new ErpService();
    }

    public void Query(string woNumber) {
      m_erpService.Query(woNumber);
    }

    public string PartNumber() {
      return m_erpService.CoilPartNo();
    }

  }

}
显然,这并不能为您解决所有问题。您用来访问Oracle数据库的Web服务仍然需要编写,这不是一项简单的任务

然而,我希望它能帮助你找到正确的方向

这一切都是使用VisualStudio2008 for Mobile 5.0完成的


如果您的Oracle输入和输出通过web服务进行路由(我个人仍在努力解决这一问题),您可能可以通过这种方式访问您的信息

添加web引用

它将询问您上传Web服务的URL。我猜这可能是一个你自己的网站,但我使用我们的内部服务器

你可以看到,我有一个默认的网页,在那里我加载了我一直坚持的可用服务。1 MainFrame.svc`本来是我的“大服务”,但后来我意识到我需要做的远不止一次,所以我创建了下一个“Erp服务”

无论如何,在我选择了
ErpService.svc
之后,我得到了这个,我将默认的Web引用名称更改为ErpService1。我个人发现,如果我需要编辑或修改服务,XML配置文件会变得一团糟,所以我只需删除Service1并添加Service2

我添加了一个名为ErpClass1.cs的新类

使用我的项目名称空间添加对我的Web服务的引用,然后开始编码

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using AcpMobile5.ErpService1;

namespace AcpMobile5 {

  class ErpClass1 {

    private ErpService m_erpService;

    public ErpClass1() {
      m_erpService = new ErpService();
    }

    public void Query(string woNumber) {
      m_erpService.Query(woNumber);
    }

    public string PartNumber() {
      return m_erpService.CoilPartNo();
    }

  }

}
显然,这并不能为您解决所有问题。您用来访问Oracle数据库的Web服务仍然需要编写,这不是一项简单的任务

然而,我希望它能帮助你找到正确的方向

这一切都是使用VisualStudio2008 for Mobile 5.0完成的


所以,我没有按照我的意图使用Apex。相反,我启用了

经过几次艰难的身份验证(主要是由于键入错误的密码):]我让这段代码正常工作:

MyWebService service = new MyWebService();
service.Credentials = new MyWebService("MY_ORACLE_USER", "*******");

double result = service.MY_LOGIN_FUNCTION(this.userName);

所以,我没有按照我的意图使用Apex。相反,我启用了

经过几次艰难的身份验证(主要是由于键入错误的密码):]我让这段代码正常工作:

MyWebService service = new MyWebService();
service.Credentials = new MyWebService("MY_ORACLE_USER", "*******");

double result = service.MY_LOGIN_FUNCTION(this.userName);

我认为WindowsMobile 5不支持“HTTPS”。我在WM5应用程序上通过创建直接连接到SQL Server的db连接实现了这一点。我只能使用Oracle。但我发现了Oracle XML DB,它可以通过web服务公开数据库对象。也有一些艰难的时刻。。。我会发布一些更新。我也还在为网络服务挣扎,所以我不是最好的资源。我会看看我能不能找到一些关于我所做的事情……我认为WindowsMobile5不支持“HTTPS”。我在WM5应用程序上通过创建直接连接到SQL Server的db连接实现了这一点。我只能使用Oracle。但我发现了Oracle XML DB,它可以通过web服务公开数据库对象。也有一些艰难的时刻。。。我会发布一些更新。我也还在为网络服务挣扎,所以我不是最好的资源。我会看看我能不能找到一些关于我所做的事情。。。