众所周知,WebService是为企业需求提供的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。但在有些时候的某些应用服务不希望被未授权访问,那么此时我们可以一下几种方法来实现身份验证。
方法一:在WebService中引入SoapHeader
- #region 配置登录标头
- /// <summary>
- /// Code CreateBy BanLao
- /// </summary>
- publicclass MySoapHeader : SoapHeader
- {
- privatestring strUserName = string.Empty;
- privatestring strPassWord = string.Empty;
- public MySoapHeader() { }
- public MySoapHeader(string username, string password)
- {
- this.strUserName = username;
- this.strPassWord = password;
- }
- #region 构造 用户名|密码
- /// <summary>
- /// 用户名
- /// </summary>
- publicstring UserName
- {
- get { return strUserName; }
- set { strUserName = value; }
- }
- /// <summary>
- /// 密码
- /// </summary>
- publicstring PassWord
- {
- get { return strPassWord; }
- set { strPassWord = value; }
- }
- #endregion
- #region 检测是否正确登录
- /// <summary>
- /// 检测是否正确登录
- /// </summary>
- /// <returns></returns>
- publicbool CheckLogin()
- {
- if (strUserName == "合法登录名" && strPassWord == "合法登录密码")
- {
- returntrue;
- }
- else
- {
- returnfalse;
- }
- }
- #endregion
- }
- #endregion
加入一个服务用于测试:
- #region 测试连接
- [System.Web.Services.Protocols.SoapHeader("myHeader")]
- [WebMethod(Description = "判断用户是否开通", EnableSession = true)]
- publicstring _GetValue(string strInputValue)
- {
- if (myHeader.CheckLogin())
- {
- string strReturnValue = strInputValue + "@CopyRight By BanLao 2010";
- return strReturnValue;
- }
- else
- {
- return"无效的身份验证,请重试!";
- }
- }
- #endregion
至此我们想要的需要通过身份验证的服务配置好了,下面让我们进行一些测试,新建一个webForm在Page_Load中:
- WebLogon.MySoapHeader myHeader = new WebLogon.MySoapHeader();
- myHeader.UserName = "约定的合法用户";
- myHeader.PassWord = "约定的合法密码";
- WebLogon.Service This_Service = new WebLogon.Service();
- This_Service.MySoapHeaderValue = myHeader;
- Response.Write(This_Service._GetValue("This is BanLao's Test Application For SoapHeader. "));
当运行这个WebForm时,如果用户名和密码是正确的我们将看到:
This is BanLao's Test Application For SoapHeader. @CopyRight By BanLao 2010
否则
无效的身份验证,请重试!
方法二:Web Service以Session方式验证
- [WebMethod(Description = "检测是否正确登录", EnableSession = true)]
- publicbool CheckLogin(string strUserName, string strPassword)
- {
- if (strUserName.Equals("admin") && strPassword.Equals("123456"))
- {
- Session["LoginState"] = true;
- }
- else
- {
- Session["LoginState"] = false;
- }
- return (bool)Session["LoginState"];
- }
- #region 测试连接
- [WebMethod(Description = "测试连接", EnableSession = true)]
- publicstring _GetValue(string strInputValue)
- {
- if (Session["LoginState"] == null || Session["LoginState"].Equals(false))
- {
- return"无效的身份验证,请重试!";
- }
- else
- {
- string strReturnValue = strInputValue + "@CopyRight By BanLao 2010";
- return strReturnValue;
- }
- }
- #endregion
调用该服务,
- WebLogon.Service This_Service = new WebLogon.Service();
- This_Service.CookieContainer = new System.Net.CookieContainer();
- if (This_Service.CheckLogin("admin", "123456"))
- {
- Response.Write(This_Service._GetValue("This is BanLao's Test Application For Session. "));
- }
当运行这个WebForm时,如果用户名和密码是正确的我们将看到:
This is BanLao's Test Application For Session. @CopyRight By BanLao 2010
否则
无效的身份验证,请重试!
注:如果需要多个合法用户,可以在WebService中声明判断即可~
相关推荐
c#调用java带身份验证webservice
.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子
本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599
labview调用webservice访问远程数据1
在WinForm程序中调用WebService 在WinForm程序中调用WebService 在WinForm程序中调用WebService
拼接xml调用webservice 拼接xml调用webservice 拼接xml调用webservice
在这里详细的介绍了,VC6调用WebService的方法。
httpwebrequest调用webservice返回数据
在不能引用其他jar包的情况调用webservice有时可以解决jar引用和冲突的问题
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
c++调用webservice(包括静态和动态以及webservice源码)
搭建iis网站,通过webservice指定网址,即可通过调用webservice访问数据库。
java调用webservicejava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava...
.Net动态调用WebService .Net动态调用WebService .Net动态调用WebService
webService添加basic验证,为了WebService的安全,将webservice添加basic验证,用户在调用时需要提供授权信息进行调用
创建好了WebService以后,把WebService部署到IIS上,并确保可以访问 二、静态引用 这种方式是通过添加静态引用的方式调用WebService。首先创建一个Winform程序,界面上有一个按钮,点击按钮调用WebService: 然后...
Flex调用WebService访问MSSQL数据库
本代码介绍了vc6.0如何调用webservice的详细步骤,是通过自己的调试成功 总结下来的
oracle调用webservice接口地址demo
SQL Server调用Webservice示例,有详细的说明文档,附demo