Webservice开发、引用
一、Webservice开发
1、在解决方案右键添加新建项目,新建空的web应用程序

2、在新建的项目右键添加新建项选择web服务

3、这里就是webservice 里的方法,可以添加自己需要的方法(方法前需要添加[WebMethod] 的特性,才可以被调用)

4、发布iis即可访问 
5、需要身份验证的webservice
5.1 SOAP Header身份验证
在webservice里添加如下类
public class MySoapHeader : SoapHeader
{
private string strUserName = string.Empty;
private string strPassWord = string.Empty; public MySoapHeader() { } public MySoapHeader(string username, string password)
{
this.strUserName = username;
this.strPassWord = password;
} #region 构造
/// <summary>
/// 用户名
/// </summary>
public string UserName
{
get { return strUserName; }
set { strUserName = value; }
}
/// <summary>
/// 密码
/// </summary>
public string PassWord
{
get { return strPassWord; }
set { strPassWord = value; }
} #endregion #region 检测是否正确登录
/// <summary>
/// 检测是否正确登录
/// </summary>
/// <returns></returns>
public bool ValideUser(out string msg )
{
msg = "";
if (strUserName == "admin" && strPassWord == "") //在这里设置身份验证的账号和密码
{
return true;
}
else
{
msg = "您无权调用次服务,请联系管理员!";
return false;
}
} #endregion
}
在添加方法的时候添加如下代码
public MySoapHeader header = new MySoapHeader (); ////定义用户身份验证类变量header
[System.Web.Services.Protocols.SoapHeader("header")]
[WebMethod]
public string GetUserName(string userID)
{
string msg = "";
if (!header.ValideUser(out msg)) //验证
{
return msg;
}
var data = new DALwbstest.UuserOP().GetUser(userID);
if (data != null)
{
return data.UsernameCN;
}
else
{
return "没有此人";
} }
调用的时候就需要账号密码验证,代码如下
WebReference.Npomwbs webClient = new Npomwbs();
MySoapHeader head = new MySoapHeader ();
head.UserName = "admin"; //在webservice里设置的账号和密码
head.PassWord = "";
webClient.MySoapHeaderValue = head; string name = webClient.GetUserName(txtID.Text); //调用需要验证的方法
5.2 windows身份验证
在webservice发布iis的时候设置如下,添加访问该webservice需要的账户和密码

身份验证设置成windows身份验证

调用的时候就需要账号密码验证,否则会提示没有授权, 添加如下代码
WebReference.Npomwbs webClient = new Npomwbs();
webClient.Credentials = new System.Net.NetworkCredential("admin",""); //这里就是你刚填写的账号和密码 string name = webClient.GetUserName(txtID.Text); // 调用方法
二、Webservice引用
1、添加Webservice引用
在项目上右键添加服务引用

在高级里添加web引用,在弹出的框里输入你发布的webservice地址,点右侧箭头,点击添加引用,添加引用成功

2、调用webservice
添加引用成功后就可以调用了

Webservice开发、引用的更多相关文章
- Webservice开发概念
一.Web Service基本概念 Web Service由两部分组成 SOAP--Web Service之间的基本通信协议. WSDL--Web Service描述语言,它定义了Web Servic ...
- Delphi XE5通过WebService开发Web服务端和手机客户端
Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices stand-alone vcl applicati ...
- 详解WebService开发中四个常见问题(2)
详解WebService开发中四个常见问题(2) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 详解WebService开发中四个常见问题(1)
详解WebService开发中四个常见问题(1) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 浅谈WebService开发三(动态调用WebService)转
在前两讲里,我已经向大家演示了如何使用WebService.同步, 异步调用WebService,而在实际开发过程中,可能会有多个WebService接口供你选择,而在程序执行过程中才决定使用哪一个 ...
- eclipse下的webservice开发
关于eclipse下的webservice开发,有非常多的教程,这里只记下学习过程中的弯路: 1.无论是CXF模式还是AXIS模式,在出现start server之后,点击next报错:"s ...
- [推荐]WebService开发知识介绍
[推荐]WebService开发知识介绍 WebService开发手册 http://wenku.baidu.com/view/df3992ce050876323112128a.html WebSe ...
- Domino 8.5 WebService开发一例
原文地址:Domino 8.5 WebService开发一例作者:bj木棉 需求是要调用一个Domino上的WebService/JAVA来实现与人事管理系统里的人员同步,就是在人事管理系统中增加用户 ...
- Java WebService 开发简单实例
Web Service 是一种新的web应用程序分支,他们是自包含.自描述.模块化的应用,可以发布.定位.通过web调用.Web Service可以执行从简单的请求到复杂商务处理的任何功能.一旦部署以 ...
随机推荐
- Connect To Ubuntu 16.04 / 17.10 / 18.04 Desktop Via Remote Desktop Connection (RDP) With Xrdp
[1] https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-co ...
- linux 最为常用的命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 cat /proc/cpuinfo 显示CPU info的信息 ...
- IOS 模拟器多开集成测试和那些坑
#### 前言公司一直没有IOS自动化,搞得很尴尬,个人感觉搞自动测试的,不搞IOS自动化,就像金X,少了重要一点啊.也向领导申请过不止一次,总只都各种原因没有分配机器,不了了之.某天线上IOS出bu ...
- MQTT协议学习总结
一.MQTT介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通 ...
- LVS负载均衡简单配置
一.简单介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtu ...
- 第52节:String,权限修饰符,方法,集合
String String str1 = "dashu"; String str2 = "dashu"; String string = new String( ...
- OAuth2简易实战(四)-Github社交联合登录
1. OAuth2简易实战(四)-Github社交联合登录 1.1. 用到的第三方插件 https://github.com/spring-projects/spring-social-github ...
- fescar分布式事务(概览)
1. fescar分布式事务(概览) 1.1. 概述 Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题. 1.2 ...
- Winginx nginx 启动提示80端口被占用
第一步:查看80端口占用信息 win键+R运行命令:cmd-->netstat -aon|findstr "80" 2.结束任务 找到 pin=4272这个进程,将进程结束 ...
- LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Sun Jan 13 17:59:19 CST 2019]; root of context hierarch
在运行项目时出现了:LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via ...