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可以执行从简单的请求到复杂商务处理的任何功能.一旦部署以 ...
随机推荐
- 天气预报demo (ShareREC 官网 MobAPI)
第一步 自己注册一个应用,然后获取里面的 App Key,下载MobAPI SDK 然后拖入 MobAPI.framework 和 MOBFoundation.framework 到你的项目中 官网是 ...
- MVC项目加入WebApi
一.NuGet搜索安装Microsoft.AspNet.WebApi,注意引用的版本依赖,因为是在完整的MVC项目上新增,在本地编译调试并没有报错,发布到IIS后却显示应用程序出错. 二.NuGet搜 ...
- java.lang.OutOfMemoryError: PermGen space (jvm内存泄漏解决办法)
2.在myeclipse根目录 打开myeclipse.ini 3.在myeclipse中配置内存
- VS2013和NuGet
1.前言 有时候在使用VS2013时需要用到第三方的dll,这时候NuGet就是一个很方便的工具.但是这个小东东也是和VS不同的版本相关的,最开始不知道,乱安装一气,最后就是很多情况下不能用.这两天在 ...
- 包建强的培训课程(1):Android App企业级开发
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Javascript高级编程学习笔记(62)—— 事件(6)焦点事件
焦点事件 焦点事件会在页面元素获得或者失去焦点时触发,利用焦点事件和 document.hasFocus() 方法配合使用 以及 document.activeElement 属性配合可以知晓用户在页 ...
- db2 报错 sqlcode=-420 自动类型转换的问题
今天在测试遇到一个问题,前台点击页面查询数据时报错: , SQLSTATE, SQLERRMC=DECFLOAT, DRIVER=4.18.60 根据sqlcode查询错误原因为:-420 22018 ...
- 比较empty()与 isset()d的区别
比较empty()与 isset()的区别 注意:empty()在PHP5.5之前只能检测变量 isset()只能检测变量 两者之间的联系:empty($var) 等价于 !isset($var)|| ...
- [原创]K8Cscan插件之存活主机扫描
[原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...
- Redis主从+KeepAlived实现高可用
Redis是我们当下比较流行使用的非关系数据库,可支持多样化的数据类型,多线程高并发支持,redis运行在内存拥有更快的读写.因为redis的表现如此出色,如何能保障redis在运行中能够应对宕机故障 ...