专栏首页Flex 调用添加了SoapHeader的web service

Flex 调用添加了SoapHeader的web service

1.NET中撰写需要使用SoapHeader验证的Web Service

代码1:WebService.cs

using System.Web.Services; using System.Web.Services.Protocols;

[WebService(Namespace = "http://www.microsoft.com/")] //名字空间,注意FLEX中调用的时候要手工填写 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]          public class WebService : System.Web.Services.WebService {

         public WebService () {}

public AuthenticationInfo authenticationInfo;

         [WebMethod] [SoapHeader("authenticationInfo")] //为服务添加SoapHeader          public string HelloWorld() {                   if (authenticationInfo == null)  {                            return "验证信息不能为空."                   }                   else{                            if (Authentication.Check(authenticationInfo.username, authenticationInfo.password))  {                                    return "Hello world!"                            }                            else{                                     return "用户名密码验证失败,你没有权力访问此服务。"                            }                   }          } }

//用户密码验证类 public class Authentication {          public static bool Check(string username, string password) {                  return ((username == "user") && (password == "password"));          }         }

代码2:AuthenticationInfo.cs

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;

/// <summary> /// AuthenticationInfo 的摘要说明 /// </summary> public class AuthenticationInfo:System.Web.Services.Protocols.SoapHeader{          public AuthenticationInfo() { }          public AuthenticationInfo(string username ,string password)         {                   this.username = username;                   this.password = password;          }          public string username;          public string password; }

2 在.NET中调用使用了SoapHeader的Web Service

代码3:Form1.cs

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace WindowsApplication1{          public partial class Form1 : Form{                   public Form1() {                            InitializeComponent();                   }                   private void button1_Click(object sender, EventArgs e){                            localhost.WebService service = new WindowsApplication1.localhost.WebService(); localhost.AuthenticationInfo au = new WindowsApplication1.localhost.AuthenticationInfo();                            au.username = textBox1.Text;                            au.password = textBox2.Text; service.AuthenticationInfoValue = au;                            label3.Text = service.HelloWorld();                   }          } }

3 在Flex调用此Web Service

代码4:SoapHeaderTest.mxml

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontFamily="simsun" fontSize="12"> <mx:Script> <![CDATA[         import mx.rpc.events.FaultEvent;         import mx.rpc.events.ResultEvent; import mx.rpc.soap.SOAPHeader;         private function Invoke():void{ ws.clearHeaders(); //先清理一下 var auinfo:Authentication = new Authentication(txtUser.text,txtPassword.text); //                 ws.addHeader(auinfo); //添加                 ws.HelloWorld(); //调用服务         }         private function wsResult(event:ResultEvent):void{                 lblInformation.text= event.result.toString();         }         private function wsFault(event:FaultEvent):void{                 lblInformation.text= event.message.toString();         } ]]> </mx:Script> <mx:WebService id="ws" wsdl="http://localhost:4443/WebSites/WebService.asmx?WSDL" result="wsResult(event)" fault="wsFault(event)"/> <mx:TextInput id="txtUser" x="98" y="94"/> <mx:TextInput id="txtPassword" x="98" y="124"/> <mx:Label x="29" y="98" text="User:"/> <mx:Label x="29" y="128" text="Password:"/> <mx:Button x="193" y="166" label="Invoke" click="Invoke()"/> <mx:Label x="29" y="213" text="Label" id="lblInformation"/> </mx:Application>

代码5:AuthenticationInfo.as

package{         public class AuthenticationInfo{ //字段名称需和.NET端一致                 public var username:String;                 public var password:String;         } }

代码6:Authentication.as

package{         import mx.rpc.soap.SOAPHeader;

public class Authentication extends SOAPHeader{                 public var username:String;                 public var password:String;                 public function Authentication(user:String,password:String){                         var content:AuthenticationInfo = new AuthenticationInfo();                         content.username = user;                         content.password = password; var qname:QName = new QName("http://www.microsoft.com/","AuthenticationInfo"); super(qname, content);                 }         } }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flex 上传文件,服务端.net

    using System; using System.Data; using System.Configuration; using System.Collec...

    用户3135539
  • 使用handler"不落地"返回图片信息

    用户3135539
  • Spring MVC基于注解的Junit测试

    INFO : org.springframework.test.context.TestContextManager - @TestExecutionList...

    用户3135539
  • webservice今日遇到的二个问题:DataTable + Namespace

    自从ms推出wcf以后,几乎没在web项目中用过webservice了,基本上都是以wcf host在iis中替代的。今天利用公司以前的web框架做一个新项目,...

    菩提树下的杨过
  • 第九天 面向对象-类,封装,对象,private,this【悟空教程】

    Java帮帮
  • C#编写影院售票系统(A project with a higher amount of gold )(2:相关代码)

    此篇文章为项目代码,,,需要项目需求 ,思路分析与窗体效果请访问:http://www.cnblogs.com/lsy131479/p/8367304.html...

    房上的猫
  • spring@Conditional

    @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。

    逍遥壮士
  • 柴毛毛大话设计模式——开发常用的设计模式梳理

    写在最前 本文是笔者的一点经验总结,主要介绍几种在Web开发中使用频率较高的设计模式。 本文篇幅较长,建议各位同学挑选感兴趣的设计模式阅读。 在阅读的同时,也...

    大闲人柴毛毛
  • Ribbon 负载均衡器 LoadBalancer 源码解析

    什么是负载均衡?简单来说一个应用,后台有多个服务来支撑,即利用多台服务器提供单一服务,当某个服务挂了或者负载过高的时候,负载均衡器能够选择其他的服务来处理请求,...

    Java技术大杂烩
  • 聊聊sentinel的DataSource

    sentinel-datasource-extension-0.1.1-sources.jar!/com/alibaba/csp/sentinel/dataso...

    codecraft

扫码关注云+社区

领取腾讯云代金券