web前端

位置:IT落伍者 >> web前端 >> 浏览文章

使用webservice解决多系统登陆问题


发布日期:2018年08月19日
 
使用webservice解决多系统登陆问题

微软NET战略的一个比较重要的部分就是webservice利用webservice我们可以创建真正有效的分布式应用程序

下面我们对webservice做一些说明

假设A是客户端B是webservice服务端用户通过http协议向服务器发送soap请求webservice返回客户端XML格式的数据

现在我们看一看创建一个webservice的大致过程

服务端的webservice是必须要建的中间的soapxml我们不用去关心在客户端这边比较重要的是如何从webservice取得对象?答案是用的是proxy对象客户端由代理对象(proxy)负责与webservice的通信所以在客户端使用webservice完全和使用一个本地对象是一样的

我们现在以一个简单的实例来说明

打开新建工程( web服务)在位置中键//localhost/webserver其中webserver就是工程的名字确定后出现一个Serviceasmxcx双击出现代码窗口

using System

using SystemCollections

using SystemComponentModel

using SystemData

using SystemDiagnostics

using SystemWeb

using SystemWebServices

namespace webserver

{

/// <summary>

/// Service 的摘要说明

/// </summary>

public class Service SystemWebServicesWebService

{

public Service()

{

//CODEGEN该调用是 ASPNET Web 服务设计器所必需的

InitializeComponent()

}

#region Component Designer generated code

//Web 服务设计器所必需的

private IContainer components = null

/// <summary>

/// 设计器支持所需的方法 不要使用代码编辑器修改

/// 此方法的内容

/// </summary>

private void InitializeComponent()

{

}

/// <summary>

/// 清理所有正在使用的资源

/// </summary>

protected override void Dispose( bool disposing )

{

if(disposing && components != null)

{

componentsDispose()

}

baseDispose(disposing)

}

#endregion

// WEB 服务示例

// HelloWorld() 示例服务返回字符串 Hello World

// 若要生成请取消注释下列行然后保存并生成项目

// 若要测试此 Web 服务请按 F

// [WebMethod]

// public string HelloWorld()

// {

// return Hello World

// }

}

}

下面在()处加入

[WebService(Namespace=//localhost/webserver/)]

这是因为soap是基于http协议上的客户端无法知道webservice位于那个服务器上在实际应用中比如上放置这个webservice则Namespace改为

下面我们给这个webservice添加一个方法

// [WebMethod]

// public string HelloWorld()

// {

// return Hello World

// }

微软帮我们写好了一个接着添加一个方法方法名称叫show

[WebMethod]

public string show(string yourname)

{

return +欢迎+yourname

}

现在就可以运行了按F点击show输入你的名字然后点击invote

看到了吧

<?xml version= encoding=utf ?>

<string xmlns=>>欢迎yyg</string>

成功了打开bin目录已经将proxy做好了webserverdll

现在我们在不同的环境下测试

打开新建windows应用程序工程命名为Client增加按钮文本框

现在要用到代理了右键单击右边的reference(引用)选择添加引用选择浏览找到webserver目录下的bin目录下的webserverdll

再加入一个systemwebwebservices的引用在列表中有

在formcs里加入

using SystemWebServices

using webserver

然后在

private SystemWindowsFormsButton button

private SystemWindowsFormsTextBox textBox

后面插入

private webserverservice Client

建立一个service的实例双击按钮代码如下

private void button_Click(object sender SystemEventArgs e)

{

Client =new Service()

string name

name=Clientshow(龙卷风NET

textBoxText=name

}

按F运行工程点击按钮文本框中显示

欢迎龙卷风NET

AspNET web窗口的测试

方法与上面的一模一样添加引用建立service的实例

在此不在细说

在VB中测试

这个就要相对来说复杂一些

首先在vb中建立一个标准EXE的工程添加引用Microsoft Soap Type library注意如果没有安装Microsoft Soap Toolkit是没有这个类型库的

可以在中下载

添加一个text

Private Sub Form_Load()

TextText = add()

End Sub

Public Function Add() As String

Dim objSoapClient As New SoapClient

objSoapClientClientProperty(ServerHTTPRequest) = True

Call objSoapClientmssoapinit(?WSDL Service ServiceSoap

这句也可以

objSoapClientmssoapinit(?WSDL

Add = objSoapClientShow(龙卷风NET

End Function

调试成功需要注意的

运行服务端webservice的程序出现下面时

支持下列操作有关正式定义请查看服务说明

点击服务说明会得到完整的wsdl文件

?WSDL

我们就要使用这个文件其中包含了我们定义的方法等等

Mssoapinit(bstrWSDLFile as string[bStrServiceName as string ][bStrport as string ] [bstrWSMLDile as string])的用法

其中第二个第三个参数在wsdl文件中可以找到也可以省略

               

上一篇:DataGrid Web控件深度历险(2) Part1

下一篇:XML文档搜索使用小结