方法一:SoapHeader

辅助类:MySoapHeader

     //SoapHeader 添加引用
using System.Web.Services.Protocols; #region 配置登录标头 public class MySoapHeader:SoapHeader
{
private string _strUserName = string.Empty;
private string _strPassWord = string.Empty; #region 构造方法
public MySoapHeader() { } public MySoapHeader(string userName, string passWord)
{
_strUserName = userName;
_strPassWord = passWord;
}
#endregion #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 检测是否正常登录
public bool CheckLogin()
{
if (_strUserName == "hkl" && _strPassWord == "")
{
return true;
}
else return false;
}
#endregion } #endregion

WebService代码

         public MySoapHeader myHeader = new MySoapHeader();

         [System.Web.Services.Protocols.SoapHeader("myHeader")]
[WebMethod(Description = "判断用户是否开通", EnableSession = true)]
public string GetValue(string strInputValue)
{
if (myHeader.CheckLogin())
{
string strReturnValue = strInputValue + "@身份验证已通过";
return strReturnValue;
}
else return "身份无效,请重试!";
}

新建一个web网页并添加web引用,在pageload方法中添加如下代码

             localhost1.MySoapHeader myHeader = new localhost1.MySoapHeader();
myHeader.UserName = "hkl";
myHeader.PassWord = ""; localhost1.Service1 myTest = new localhost1.Service1();
myTest.MySoapHeaderValue = myHeader;
Response.Write(myTest.GetValue("This's my test Application for SoapHeader."));

运行即可查看结果。

方法二:Session

  WebService代码

         [WebMethod(Description = "检测是否通过验证", EnableSession = true)]
public bool CheckLogin(string strUserName, string strPassWord)
{
if (strUserName.Equals("xxx") && strPassWord.Equals(""))
{
Session["LoginState"] = true;
}
else Session["LoginState"] = false; return (bool)Session["LoginState"];
} [WebMethod(Description = "测试连接", EnableSession = true)]
public string GetValue(string strInputValue)
{
if (Session["LoginState"] == null || Session["LoginState"].Equals(false))
{
return "无效身份,请重试!";
}
else
{
string strReturnValue = strInputValue + "@身份验证已通过";
return strReturnValue;
}
}

新建一个web网页并添加web引用,在pageload方法中添加如下代码

             localhost2.Service2 myTest = new localhost2.Service2();
myTest.CookieContainer = new System.Net.CookieContainer();
if (myTest.CheckLogin("xxx", ""))
{
Response.Write(myTest.GetValue("This is my test application for session."));
}

运行即可查看结果。

为WebService添加身份验证的两种方法的更多相关文章

  1. PHP中对用户身份认证实现两种方法

    用户在设计和维护站点的时候,经常需要限制对某些重要文件或信息的访问.通常,我们可以采用内置于WEB服务器的基于HTTP协议的用户身份验证机制.     当访问者浏览受保护页面时,客户端浏览器会弹出对话 ...

  2. WebGL中添加天空盒的两种方法

    天空盒 的添加可以让模型所在的场景非常漂亮,而其原理也是非常简单的,相信看完下面代码就可以明白了. 说到天空盒的两种方法,倒不如说是两种写法,分别用了纹理加载的两个方法:loadTexture和loa ...

  3. DataGridView动态添加新行的两种方法

    简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int index=this.dataGridView1.Rows.Add();this.dataGridView1.R ...

  4. C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串

    //sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...

  5. C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串

    //sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;datab ...

  6. MongoDB添加secondary节点的两种方法

    前段时间维护的一个事业群的其中一条业务线的开发找到运维,提出来了一个MongoDB的优化问题,那段时间MongoDB正在从op管理移交给db进行维护,整个部门都对MongoDB的运维经验缺乏,Mong ...

  7. windows 7中添加新硬件的两种方法(本地回环网卡)

    最近在windows7上使用VMwareWorkstation7玩一些实验,遇到需要配置不同网络的问题. 因为在windows2003server上习惯使用要本地回环网卡了,那就想着在Windows7 ...

  8. ASP.NET中身份验证的三种方法

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活.Forms 验证方式对基于用户的验证授权 ...

  9. ace+validate表单验证(两种方法)

    //修改密码(直接在validate中验证提交) $("#changePassword").on(ace.click_event, function() { var html = ...

随机推荐

  1. 如何在基于Bytom开发过程中集成IPFS

    本文介绍了基于Bytom开发过程中集成IPFS. step1: 搭建bytom节点 比原相关资料:https://github.com/Bytom-Community/Bytom_Docs 搭建byt ...

  2. Learning-Python【21】:Python常用模块(4)—— re、logging、hashlib、subprocess

    re 模块:与正则相关的模块 在使用 re 模块之前,需要先了解正则表达式(regular expression),描述了一种字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某个子字 ...

  3. 解决 Command "python setup.py egg_info" failed with error code 1 问题

    参考: "pip install unroll": "python setup.py egg_info" failed with error code 1 解决 ...

  4. beyond compare 免费版

    链接:https://pan.baidu.com/s/10lPUEpFPZU76HRbJfbZ2ZA 提取码:r2go

  5. 【虚拟机】解决网络适配器没有 VirtualBox Host-Only Ethernet Adapter 问题

    下面以windows系统来演示重新安装 VirtualBox Host-Only Ethernet Adapter的方法 1.“win+r”输入“devmgmt.msc”,出现如下界面: 2.点击菜单 ...

  6. leecode第一百六十九题(求众数)

    class Solution { public: void quick_sort(vector<int>& nums,int res,int res_end) { )//错过,不能 ...

  7. webpack点滴

    一个比较完整的webpack的配置,自己配置不断更新. const path = require('path') const configs = require('./configs/') const ...

  8. 使用cookie记录页面跳转次数,然后从最后一级页面跳转回首页面

    1.首先,给出cookie设置,获取,删除的操作函数. function setCookie(name,value) {          var Days = 30;          var ex ...

  9. kafka consumer 指定 offset,进行消息回溯

    kafka consumer 如何根据 offset,进行消息回溯?下面的文档给出了 demo: https://cwiki.apache.org/confluence/display/KAFKA/0 ...

  10. 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)

    原文见:http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/ from:ht ...