• 两种方法实现Web Service身份验证


    http://developer.51cto.com/art/200908/141829.htm

    Web Service身份验证解决方案一:通过通过SOAP Header身份验证。

    1.我们实现一个用于身份验证的类,文件名MySoapHeader.cs

    MySoapHeader类继承自System.Web.Services.Protocols.SoapHeader。且定义了两个成员变量,UserName和PassWord,还定义了一个用户认证的函数ValideUser。它提供了对UserName和PassWord检查的功能

    using System;  
    using System.Data;  
    using System.Configuration;  
    using System.Web;  
    using System.Web.Security;  
    using System.Web.UI;  
    using System.Web.UI.HtmlControls;  
    using System.Web.UI.WebControls;  
    using System.Web.UI.WebControls.WebParts;  
    using System.Web.Services;  
    using System.Web.Services.Protocols;  
    ///   
    ///MySoapHeader 的摘要说明  
    ///   
    public class MySoapHeader:SoapHeader  
    {  
        public MySoapHeader()  
        {  
            //  
            //TODO: 在此处添加构造函数逻辑  
            //  
        }  
        public string UserName;  
        public string PassWord;  
        public bool ValideUser(string in_UserName, string in_PassWord)     
        {  
            if ((in_UserName == "zxq") && (in_PassWord == "123456"))  
            {  
                return true;  
            }  
            else  
            {  
                return false;  
            }  
        }  
    } 

    下面我们创建WebService.asmx    WebService.cs代码如下:

    using System;  
    using System.Collections;  
    using System.Web;  
    using System.Web.Services;  
    using System.Web.Services.Protocols;  
     
    ///   
    ///WebService 的摘要说明  
    ///   
    [WebService(Namespace = "http://tempuri.org/")]  
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    public class WebService : System.Web.Services.WebService  
    {  
     
        public WebService()  
        {  
     
            //如果使用设计的组件,请取消注释以下行   
            //InitializeComponent();   
        }  
        public MySoapHeader header; ////定义用户身份验证类变量header  
        [WebMethod(Description = "用户验证测试")]  
        [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头   
        public string HelloWorld(string contents)  
        {  
            //验证是否有权访问   
            if (header.ValideUser(header.UserName, header.PassWord))  
            {  
                return contents + "执行了";  
            }  
            else  
            {  
                return "您没有权限访问";  
            }  
        }  
    }  

    3.客户端 创建个Default.aspx

    Default.aspx .cs代码  
     
    using System;  
    using System.Configuration;  
    using System.Data;  
    using System.Web;  
    using System.Web.Security;  
    using System.Web.UI;  
    using System.Web.UI.HtmlControls;  
    using System.Web.UI.WebControls;  
    using System.Web.UI.WebControls.WebParts;  
     
    public partial class _Default : System.Web.UI.Page   
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            com.cn1yw.WebService test = new com.cn1yw.WebService();//web引用(改成您自己的)  
            com.cn1yw.MySoapHeader Header = new com.cn1yw.MySoapHeader();//web引用创建soap头对象(改成您自己的)  
            //设置soap头变量  
            Header.UserName = "zxq";  
            Header.PassWord = "123456";  
            test.MySoapHeaderValue = Header;  
            //调用web 方法  
            Response.Write(test.HelloWorld("我是强"));  
        }  
    } 

    第二种方法

    Web Service身份验证解决方案二:通过集成windows身份验证。

          链接地址:http://developer.51cto.com/art/200908/141829.htm

     

    天行健,君子以自强不息
  • 相关阅读:
    使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
    浅谈程序猿的职业规划,看你如何决定自己的未来吧。
    [转载]DOS循环:bat/批处理for命令详解 (史上虽详尽的总结和说明~~)
    bat 批处理 字符串 截取
    window上使用GIT的个人经验(入门级)
    Android 访问 wcf
    解决 MyEclipse 10 中 JSp页面 “return false” 报错问题
    微信公共平台(码农在努力)
    Spring Cloud 中使用 Zipkin 追踪服务
    Spring Cloud Config 分布式配置中心
  • 原文地址:https://www.cnblogs.com/halo/p/2961066.html
Copyright © 2020-2023  润新知