调用WebService时加入身份验证,以拒绝未授权的访问
来源:互联网 发布:淘宝打印发货单软件 编辑:程序博客网 时间:2024/05/12 00:03
众所周知,WebService是为企业需求提供的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。但在有些时候的某些应用服务不希望被未授权访问,那么此时我们可以一下几种方法来实现身份验证。
方法一:在WebService中引入SoapHeader
- #region 配置登录标头
- /// <summary>
- /// Code CreateBy BanLao
- /// </summary>
- public class MySoapHeader : SoapHeader
- {
- private string strUserName = string.Empty;
- private string strPassWord = string.Empty;
- public MySoapHeader() { }
- public MySoapHeader(string username, string password)
- {
- this.strUserName = username;
- this.strPassWord = password;
- }
- #region 构造 用户名|密码
- /// <summary>
- /// 用户名
- /// </summary>
- public string UserName
- {
- get { return strUserName; }
- set { strUserName = value; }
- }
- /// <summary>
- /// 密码
- /// </summary>
- public string PassWord
- {
- get { return strPassWord; }
- set { strPassWord = value; }
- }
- #endregion
- #region 检测是否正确登录
- /// <summary>
- /// 检测是否正确登录
- /// </summary>
- /// <returns></returns>
- public bool CheckLogin()
- {
- if (strUserName == "合法登录名" && strPassWord == "合法登录密码")
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- #endregion
- }
- #endregion
加入一个服务用于测试:
- #region 测试连接
- [System.Web.Services.Protocols.SoapHeader("myHeader")]
- [WebMethod(Description = "判断用户是否开通", EnableSession = true)]
- public string _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)]
- public bool 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)]
- public string _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中声明判断即可~
0 0
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 调用WebService时加入身份验证,以拒绝未授权的访问
- “401 - 未授权:由于凭据无效,访问被拒绝”在iis的解决办法
- 调用.NET WebService写入文件时遇到文件夹被拒绝访问的问题
- 关于调用相册访问时选择未授权的一个BUG
- 401 - 未授权: 由于凭据无效,访问被拒绝。
- 401 - 未授权: 由于凭据无效,访问被拒绝。
- windows 2008 r2 IIS 7.5 - 401 - 未授权: 由于凭据无效,访问被拒绝。
- 关于初学WCF时,调用方未由服务进行身份验证的问题
- c#调用Java的webservice出现身份验证失败的解决方案
- WebService:Axis客户端调用需要身份验证的CXF服务
- axis2 以 RPC的方式访问webservice
- 调用webservice接口时出现401错误 添加身份验证
- 在Win7中创建、部署WebService时遇到的访问被拒绝错误解决方法
- webservice 连接拒绝 网页访问是好的
- 间隔年(退休)靠什么生存?——北漂18年(76)
- LeetCode 357: Count Numbers with Unique Digits
- c语言32个关键字
- 同步加载与异步加载
- 208. Implement Trie (Prefix Tree)
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 2017年春运,那些抢票软件还能用么?
- 211. Add and Search Word - Data structure design
- webservice 采用SSL实现加密传输
- 集合中的迭代
- Windows/Linux环境下查看Java进程ID方法
- 51单片机学习
- 服务器ionCube扩展/组建安装教程
- php 判断文件或目录是否存在