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

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 网络编程 >> ASP.NET >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
如何测试 Macintosh Web…
ASP.NET技巧:用MasterP…
编写高性能Web应用程序的…
ASP.NET AJAX Beta2 调用…
vbscript下将小写金额转…
如何开始WEB标准之路
教你快速获得WEB根目录的…
Gb2312转utf-8(vbs+js)
WEB标准教程:Div+CSS布…
Web程序从Struts向Strip…
  WebService服务和ajax使用教程           
WebService服务和ajax使用教程
 

题外话

WebService技术已经有好几年的历史了,关于基础的理论知识,此处省去,不说了。最近被炒了的ajax技术也被滥用的很是严重,至于细节,不是我说的重点。

ajax技术的入门比较低,javascript和xml的一点利用,个人以为没啥含量,不能在根本上解决企业的需求或者问题,在安全性,线路传输的低级等方面都有致命的问题.

为什么要把WebService和ajax放一起,原因很简单, 两者的共同点准确的来说是经常按照同一数据协议--------XML.

本文全部源码userapp.rar

本文既不说明ajax的弱,也不说WebService的强大,只是通过一个例子说明了如何使用WebService技术和ajax技术.

我通过实例“用户登陆”展示How.
在本地建立一个虚拟目录UserApp。

先创建一个webservice:

namespace Cjjer{
using System;
using System.Web.Services;
[WebService (Name="WebsCjjer",Description="一个验证用户登陆的web服务",Namespace="http://www.cjjer.com/webs/")]
public class UserService{
    [WebMethod (Description ="输入用户名和密,返回权限Int值,0表示失败",MessageName="Login")]
    public int Login(string UserName,string UserPassword){
        return User.Check(UserName,UserPassword);
    }


};
}

我们暂时不看细节,注意这是这个class有头WebService,标记了这是一个web服务.

csc编译掉,放入bin目录,然后login.asmx文件:

<%@WebService Class="Cjjer.UserService"%>

我先不说验证的细节,我们先假设User.Check()返回的是用户级别,0表示验证失败.

现在在URL中输入地址,访问:如图

WebService服务和ajax使用教程

点击login:

WebService服务和ajax使用教程

输入正确的用户名和密码,然后点击调用:

WebService服务和ajax使用教程

如果不是正确的用户名和密码,将int节点值是0.

我们本地的调用是在SOAP操作.

还有很多方式:

SOAP(最低级的)

soap的这里不说,以后会详细说,我这里注意看的是get和post方式:

HTTP GET

面是一个 HTTP GET 请求和响应示例。所显示的占位符需要由实际值替换。

GET /userapp/login.asmx/Login?UserName=string&UserPassword=string HTTP/1.1
Host: s

return:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://www.cjjer.com/webs/">int</int>

HTTP POST

下面是一个 HTTP POST 请求和响应示例。所显示的占位符需要由实际值替换。

POST /userapp/login.asmx/Login HTTP/1.1
Host: s
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserName=string&UserPassword=string

return:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://www.cjjer.com/webs/">int</int>

我们可以输入url的地址,或者post的action,就可以访问和提交获取结果了.

此处可以选择的操作其实也很多,使用屏幕清理技术,还可以用xml的处理框架提交信息的结果,也可以用其他技术,不说了,反正都是貌似需要几十行或者比我下面多一些处理。

我说的是使用SDK的工具wsdl工具处理代理的web服务.

wsdl /l:cs /out:WebsCjjer.cs /namespace:Webs /urlkey:WebsUser /nologo http://s:81/userapp/login.asmx?wsdl

得到WebsCjjer.cs源文件。

注意:/urlkey:WebsUser表示是URL可以是从web.config文件的WebsUser获取,这样做是避免硬编码,看看WebsCjjer.cs

.......
    public WebsCjjer() {
            string urlSetting = System.Configuration.ConfigurationSettings.AppSettings["WebsUser"];
            if ((urlSetting != null)) {
                this.Url = urlSetting;
            }
            else {
                this.Url = "http://s:81/userapp/login.asmx";
            }
        }
.......

为了能被其他的人访问,需要加入如下代码到web.config:

    <system.web>
    <webServices>
        <protocols>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
        </protocols>
    </webServices>

就是代理许可.

编译了这个类,到bin,使用的时候如下:

void OnLogin(Object s,EventArgs e){
    Webs.WebsCjjer Ws_App = new Webs.WebsCjjer();
    returnint.Text = Ws_App.Login(MyUserName.Text,MyPassword.Text).ToString();
}

这样,直接能返回结果,不需要我们自己正则或者xml处理,不需要知道验证的细节

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

原始作者:佚名 录入时间:2006-11-28 5:06:51
信息来源:不详 投稿信箱: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:点击这里给我发消息
    特别感谢:亿太网络提供空间支持