设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: 刺猬宫 >> 网络编程 >> ASP.NET >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
技巧:javascript与…
ASP与Flash8联合打造简单…
动态网页技术ASP编程中F…
Oracle环境下APACHE虚拟…
信吗?令你的网站获得任…
Oracle与PHP实例开发Mye…
windows环境下uploaded_…
网页页面中如何用ja…
CSS中Float概念相关文章…
使用DIV+CSS制作网页后,…
  Flex与asp.net的WebService通讯           
Flex与asp.net的WebService通讯
 

  本篇随笔主要是关于Flex与asp.net的WebService通讯,其中利用了SoapHeader。(如果你对SoapHeader不了解,可以参考WebService开发(一) 如何使用Soap头)。由此可见WebService在跨平台方面的优势。

  ASP.NET的WebService代码

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

[WebService(Namespace = "http://davidfan.cnblogs.com")]//名称空间应该和Flex中定义相同
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public ValidateSoapHeader header;
    [WebMethod]
    [SoapHeader("header")]
    public string HelloWorld()
    {
        if (header == null)
        {
            return "请提供验证信息.";
        }
        else
        {
            if (header.Name == "admin" && header.Password == "admin")
            {
                if (header.ExDate < DateTime.Now)
                {
                    return "帐号过期";
                }
                else
                {
                    return "验证成功";
                }
            }
            else
            {
                return "用户名或密码错误";
            }
        }
    }

}

/**//// <summary>
/// 继承自SoapHeader的自定义类
/// </summary>
public class ValidateSoapHeader : System.Web.Services.Protocols.SoapHeader
{
    public ValidateSoapHeader()
    {
    }
    public ValidateSoapHeader(string name, string password, DateTime dt)
    {
        this.name = name;
        this.password = password;
        this.exDate = dt;
    }

    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    private string password;
    public string Password
    {
        get { return password; }
        set { password = value; }
    }

    private DateTime exDate;
    public DateTime ExDate
    {
        get { return exDate; }
        set { exDate = value; }
    }
}

  Flex的mxml、as代码

  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 WebServiceUtility.Info;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.soap.SOAPHeader;
   
    private function SendRequest():void
    {
        var content:Info = new Info();
        content.Name = UserName.text;
        content.Password = PassWord.text;
        content.ExDate = new Date(2010, 3, 10);
        //关键在QName的构造函数
        //第一个参数要和.Net的WebService的名称空间相同
        //第二个参数要和.Net的WebService的继承自SoapHeader的自定义类名称相同
        var qname:QName = new QName("http://davidfan.cnblogs.com","ValidateSoapHeader");
        var header:SOAPHeader = new SOAPHeader(qname,content);
       
        ws.clearHeaders();
        ws.addHeader(header);
        ws.HelloWorld();
    }
    private function OnResult(event:ResultEvent):void{
            Result.text= event.result.toString();
    }
    private function OnFault(event:FaultEvent):void{
            Result.text= event.message.toString();
    }
]]>
</mx:Script>
<mx:WebService id="ws" wsdl="http://localhost:9200/WebSite2/Service.asmx?WSDL"
result="OnResult(event)" fault="OnFault(event)"/>
<mx:TextInput id="UserName" x="98" y="94"/>
<mx:TextInput id="PassWord" x="98" y="124"/>
<mx:Label x="29" y="98" text="用户名:"/>
<mx:Label x="29" y="128" text="密 码:"/>
<mx:Button x="98" y="184" label="调用" click="SendRequest()"/>
<mx:Label x="29" y="156" text="结 果:"/>
<mx:TextInput id="Result" x="98" y="154"/>
</mx:Application>

  as

package WebServiceUtility
{
        public class Info{
            //该类名称可以和.Net中的ValidateSoapHeader不同
            //但字段要对应拼写相同
            public var Name:String;
            public var Password:String;
            public var ExDate:Date;
        }
}

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-7-13 15:50:26
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持