zoukankan      html  css  js  c++  java
  • webservice带soapheader验证的实例

    公司叫我和另一个网站写一个用户接口,如下:
    代码
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;

    namespace UserLoginTest
    {
        
    /// <summary>
        
    /// CheckUser 的摘要说明
        
    /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
        [ToolboxItem(
    false)]
        
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        
    // [System.Web.Script.Services.ScriptService]
        public class CheckUser : System.Web.Services.WebService
        {


            
    /// <summary>
            
    /// 不要验证的方法
            
    /// </summary>
            
    /// <returns></returns>
            [WebMethod]
            
    public string HelloWorld()
            {
                
    return "Hello World";
            }

            
    public MySoapHeader soapHead = new MySoapHeader();




            
    /// <summary>
            
    ///需要验证的方法
            
    /// </summary>
            
    /// <param name="UserID"></param>
            
    /// <param name="UserName"></param>
            
    /// <param name="msg"></param>
            
    /// <returns></returns>
            [SoapHeader("soapHead")]
            [WebMethod]
            
    public bool GetUserInfo(int UserID, string UserName, out string msg)
            {

                
    string deUserName = EncryptHelper.Decrypt(UserName, "jjjyzy");
                msg 
    = string.Empty;
                
    if (!soapHead.IsValid(out msg))
                { 
    return false; }

                
    else
                {
                    
    return checkCount(UserID, deUserName);


                }

            }


            
    /// <summary>
            
    /// 查询ID和帐号
            
    /// </summary>
            private bool checkCount(int userID, string Username)
            {
                
    string sqlStr = "select table where id=userid and Username= username";


                
    return true;
            }

        }


        
    /// <summary>
        
    /// soaphead验证的方法帐号密码ly(重写一个类)
        
    /// </summary>
        public class MySoapHeader : System.Web.Services.Protocols.SoapHeader
        {
            
    public string WsUserName
            { 
    getset; }
            
    public string WsPwd
            { 
    getset; }

            
    public MySoapHeader()
            {

            }

            
    public bool IsValid(out string msg)
            {
                
    return IsValid(WsUserName, WsPwd, out msg);
            }
            
    private bool IsValid(string wsusername, string wspwd, out string msg)
            {
    //, out string msg
                msg = string.Empty;
                
    if (wsusername == "ly" & wspwd == "ly")
                { msg 
    = "您有权调用"return true; }

                
    else { msg = "您无权调用"return false; }
            }

        }
    }
    -------长沙程序员技术交流QQ群:428755207-------
  • 相关阅读:
    iis 500
    无线密码获取
    数据库创建
    系统基础配置指令
    手把手教你用ngrx管理Angular状态
    vue中v-cloak解决刷新或者加载出现闪烁(显示变量)
    HBuilder如何与真机连接
    01 spring boot源码阅读参考
    01 git学习笔记参考
    OAuth2授权基础知识
  • 原文地址:https://www.cnblogs.com/qq4004229/p/1822508.html
Copyright © 2011-2022 走看看