原文:WebService 用户名密码验证

在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是证书.下面程序使用的是用户名/密码的方式,很简单的一个程序.

项目截图:

先看服务端的代码(ws_Service)

MySoapHeader.cs   这里通过继承SoapHeader实现对用户名/密码的验证

public class MySoapHeader:System.Web.Services.Protocols.SoapHeader{private string userID = string.Empty;private string userPW = string.Empty;public string UserId{get { return userID; }set { userID = value; }}public string UserPW{get { return userPW; }set { userPW = value; }}public MySoapHeader(){ }public MySoapHeader(string name, string password){userID = name;userPW = password;}private bool IsValid(string nUserId, string nPassWord, out string nMsg){nMsg = "";try{if (nUserId == "admin" && nPassWord == "admin"){return true;}else{nMsg = "对不起,你无权调用Web服务";return false;}}catch{nMsg = "对不起,你无权调用Web服务";return false;}}public bool IsValid(out string nMsg){return IsValid(userID,userPW,out nMsg);}}

Service1.asmx文件代码:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]public class Service1 : System.Web.Services.WebService
{
    public MySoapHeader myHeader = new MySoapHeader();[WebMethod]public string GetMsg(){Thread.Sleep(5000);return "Hello World";}[SoapHeader("myHeader")][WebMethod(Description="获取用户列表")]public string GetMain(){string msg = "";if (!myHeader.IsValid(out msg)){return msg;}return "Main";}
}

这里面有两个方法,其中GetMsg方法是不需要验证的,而GetMain方法需要进行用户名/密码的验证,这个可以在客户端调用时进行验证.

客户端添加对服务端的引用…

Program.cs文件

class Program
{static void Main(string[] args){localhost.Service1SoapClient proxy = new ws_Client.localhost.Service1SoapClient();MySoapHeader header = new MySoapHeader();header.UserId = "admin";header.UserPW = "admin";string result = proxy.GetMain(header);//string result = proxy.GetMsg();Console.WriteLine(result);Console.ReadKey();}}

WebService 用户名密码验证相关推荐

  1. java webservice用户名密码_WebService 用户名密码验证

    在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是证书.下面程序使用的是用户名/密码的方式,很 ...

  2. Open***2.4.3 基于用户名密码验证方式(实战)

    安装部署参考"Open'×××安装部署文档" 基于用户名密码验证: 1.修改server.conf: tls-auth ta.key 0 # This file is secret ...

  3. java wcf 未提供用户名_WCF安全之自定义用户名密码验证方式 | 学步园

    概述 Windows Communication Foundation (WCF) 是 Microsoft 为构建面向服务的应用程序而提供的统一编程模型(摘自MSDN),在分布式环境下的安全问题尤为重 ...

  4. linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux

    本篇文章给大家带来的内容是关于使用用户名密码验证连接Linux,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 如果您使用的是 SSH 密钥对,请参考 使用SSH密钥对连接Linux实 ...

  5. WCF全双工以及用户名密码验证

    WCF是支持TCP双向连接的,支持Server和Client之间互发协议,通过 订阅-发布 的全双工形式实现,全双工的用户名密码验证需要X509证书加密,单工模式的用户名密码验证时,X509证书是可选 ...

  6. hive 配置用户名_配置HiveServer2的安全策略之自定义用户名密码验证

    具体从网上看 http://doc.mapr.com/display/MapR/Using+HiveServer2#UsingHiveServer2-ConfiguringCustomAuthenti ...

  7. 自定义实现wcf的用户名密码验证

    目前wcf分为[传输层安全][消息层安全]两种,本身也自带的用户名密码验证的功能,但是ms为了防止用户名密码明文在网络上传输,所以,强制要求一旦使用[用户名密码]校验功能,则必须使用证书,按照常理讲, ...

  8. 太实用了!自己动手写软件——邮件用户名密码验证

    我们计划实现的弱口令破解软件一共支持如下四类协议的解析: 数据库类--MySQL.Oracle和SQL server 邮件类--IMAP.POP3和SMTP 文件传输类--FTP 运维类--SSH 数 ...

  9. es带用户名密码验证并配置elasticsearch-head连接

    一.搭建es,带用户名密码验证 Elastic 安全是非常重要的.没有这个我们的数据可以被任何的人进行访问,串改,删除.Elastic Stack 的安全是由 x-pack 所提供的.在 Elasti ...

最新文章

  1. 老婆给当程序员的老公打电话:今天下班顺路买斤元宵……
  2. 活动目录实战系列二(主域控无法正常启动)
  3. WinCE6.0的批量编译
  4. iview area 遇到的坑
  5. listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...
  6. Dijkstra算法——计算一个点到其他所有点的最短路径的算法
  7. margin和padding的区别
  8. linux常用解压和压缩文件的命令
  9. 请教设计模式大牛们几点
  10. python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...
  11. python3.7.3配置环境变量_配置环境变量切换到python3.7
  12. 《Cortex-M0权威指南》之Cortex-M0编程入门
  13. 计算机信息管理自荐信个人简历,计算机信息专业英文自荐信
  14. vm安装windows出问题:加载驱动程序 缺少计算机所需的介质驱动程序。这可能是DVD,U盘或者硬盘驱动程序如果你有包含该驱动程序的CD,DVD或U盘,请立即插入 注意:如果windows安装介..
  15. RGB、HSL、Hex网页色彩,看完这篇全懂了
  16. 如何制作专属的VS Code主题
  17. windows下GMT绘制矢量图
  18. 未来5年互联网,运营将成比产品更加有前途的职业?
  19. (二十四)资本资产定价模型
  20. 【计算机基础】多媒体技术、网页制作、计算机网络

热门文章

  1. 控制结构(1)-判断控制
  2. java导出excel数据量大_解决大批量Excel导出OOM问题
  3. python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理
  4. POJ 2728 最优比率生成树
  5. 【Android 逆向】函数拦截 ( CPU 高速缓存机制 | CPU 高速缓存机制 导致 函数拦截失败 )
  6. 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 序列化 | Protobuf 反序列化 )
  7. 【MATLAB】数据类型 ( 执行代码 | 清空命令 | 注释 | 数字 | 字符 | 字符串 )
  8. 爬虫篇 --- 分布式爬虫
  9. react复习总结(1)--react组件开发基础
  10. Agent Job相关的系统表