网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.小tips:asp.net 2.0中在gridview.
.解决网址参数获取乱码问题.
.asp.net关于文件在数据库的存入和.
.语言决不是语法的不同之.NET 版本.
.Asp.net url分页的用户控件 .
..Net 2.0 原汁原味读取注册表.
.asp.net中在前台用js增删ListBox.
.url传递中文的解决方案.
.ASP.NET中前台javascript与后台代.
.如何取得IP/用户名等信息.
.为ASP.NET封装的SQL数据库访问类.
.在 ExcuteReader 中使用输出参数.
.用MasterPage 代替 PageBase.
.SharpWebMail介绍和安装.
."ASP.NET AJAX RC1(疑似缺陷)"及.
.asp.net 2.0里当readonly遇上ena.
..Net2.0读取应用程序配置节.
.让ASP.NET简便使用SCRIPT.
.web中,如何读取Word内容(包含表.
.Scott Mitchell 的ASP.NET 2.0数.

Web Service非Soap头(Session)身份验证方法

发表日期:2008-12-12

  最近在做一个程序的Web Service,需要验证帐号才能使用Web Service提供的方法,首先想到把帐号信息附加在Soap头中传过去的方式,但在公司其他同事在使用非.net程序调用的时候发现有诸多不便。又Google了一镇子,发现一个使用Session的方式,说起来还是找“Web Service分段上传大附件”的时候看到的一个示例,难怪以前找Web Service验证的时候老找不到想要的结果。代码比较简单,主要代码如下:view plaincopy to clipboardprint?
/// <summary>  
 /// 授权验证,在调用Web Service的时候先调用这个方法,调用完成后就像普通网站登录一样,只要Session不超时就不需要再次调用此方法了  
 /// </summary>  
 /// <param name="appName">程序名称</param>  
 /// <param name="appAuthorizeCode">授权代码</param>  
 /// <returns></returns>  
 [WebMethod(EnableSession = true, MessageName = "授权验证")]  
 public bool CheckAuthorize(string appName, string appAuthorizeCode)  
 {  
 if (appName == "帐号名称" && appAuthorizeCode == "123456")  
 Session["Login"] = true;  
 else 
 Session["Login"] = false;  
 
 return (bool)Session["Login"];  
 }  
 
 /// <summary>  
 /// 添加档案,然后再调用  
 /// </summary>  
 /// <param name="model">档案实体类</param>  
 /// <returns></returns>  
 [WebMethod(EnableSession=true,MessageName="添加档案")]  
 public string AddArchive(Model.Archives model)  
 {  
 try 
 {  
 
 if (Session["Login"] != null && Session["Login"].Equals(true))  //这里就是判断Session值,即有没有通过验证。每个方法前都需要判断下  
 {  
 //以下代码为示例代码,可以根据需要放置自己的代码了  
 BLL.Archives bll = new BLL.Archives(); //档案操作类的实例化  
 
 if (bll.AddArchive(model)) //添加档案  
 return "档案添加成功";  
 else 
 return "档案添加失败";  
 }  
 else 
 return "未通过验证";  
 }  
 catch (Exception err)  
 {  
 return err.Message;  
 }  
 } 

/// <summary>
 /// 授权验证,在调用Web Service的时候先调用这个方法,调用完成后就像普通网站登录一样,只要Session不超时就不需要再次调用此方法了
 /// </summary>
 /// <param name="appName">程序名称</param>
 /// <param name="appAuthorizeCode">授权代码</param>
 /// <returns></returns>
 [WebMethod(EnableSession = true, MessageName = "授权验证")]
 public bool CheckAuthorize(string appName, string appAuthorizeCode)
 {
 if (appName == "帐号名称" && appAuthorizeCode == "123456")
 Session["Login"] = true;
 else
 Session["Login"] = false;

 return (bool)Session["Login"];
 }

 /// <summary>
 /// 添加档案,然后再调用
 /// </summary>
 /// <param name="model">档案实体类</param>
 /// <returns></returns>
 [WebMethod(EnableSession=true,MessageName="添加档案")]
 public string AddArchive(Model.Archives model)
 {
 try
 {

 if (Session["Login"] != null && Session["Login"].Equals(true))  //这里就是判断Session值,即有没有通过验证。每个方法前都需要判断下
 {
 //以下代码为示例代码,可以根据需要放置自己的代码了
 BLL.Archives bll = new BLL.Archives(); //档案操作类的实例化

 if (bll.AddArchive(model)) //添加档案
 return "档案添加成功";
 else
 return "档案添加失败";
 }
 else
 return "未通过验证";
 }
 catch (Exception err)
 {
 return err.Message;
 }
 }  可以看到使用Session的方式来验证主要还是在于“EnableSession = true”这个属性。

上一篇:简述.Net下的应用程序授权实战步骤 人气:93
下一篇:跨应用程序进行Forms身份验证详解 人气:153
浏览全部Web Service的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐