WebService 用户名密码验证

原文:WebService 用户名密码验证

在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是证书.下面程序使用的是用户名/密码的方式,很简单的一个程序.

项目截图:

先看服务端的代码(ws_Service)

MySoapHeader.cs   这里通过继承SoapHeader实现对用户名/密码的验证

 

public class MySoapHeader:System.Web.Services.Protocols.SoapHeader
   {
       private string userID = string.Empty;
       private string userPW = string.Empty;

       public string UserId
       {
           get { return userID; }
           set { userID = value; }
       }
       public string UserPW
       {
           get { return userPW; }
           set { userPW = value; }
       }
       public MySoapHeader()
       { }
       public MySoapHeader(string name, string password)
       {
           userID = name;
           userPW = password;
       }

       private bool IsValid(string nUserId, string nPassWord, out string nMsg)
       {
           nMsg = "";
           try
           {
               if (nUserId == "admin" && nPassWord == "admin")
               {
                   return true;
               }
               else
               {
                   nMsg = "对不起,你无权调用Web服务";
                   return false;
               }
           }
           catch
           {
               nMsg = "对不起,你无权调用Web服务";
               return false;
           }
       }
       public bool IsValid(out string nMsg)
       {
           return IsValid(userID,userPW,out nMsg);
       }
   }

 

Service1.asmx文件代码:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]

public class Service1 : System.Web.Services.WebService
{
    public MySoapHeader myHeader = new MySoapHeader();
    [WebMethod]
    public string GetMsg()
    {
        Thread.Sleep(5000);
        return "Hello World";
    }

    [SoapHeader("myHeader")]
    [WebMethod(Description="获取用户列表")]
    public string GetMain()
    {
        string msg = "";
        if (!myHeader.IsValid(out msg))
        {
            return msg;
        }
        return "Main";
    }
}

这里面有两个方法,其中GetMsg方法是不需要验证的,而GetMain方法需要进行用户名/密码的验证,这个可以在客户端调用时进行验证.

 

客户端添加对服务端的引用…

Program.cs文件

class Program
{
    static void Main(string[] args)
    {
        localhost.Service1SoapClient proxy = new ws_Client.localhost.Service1SoapClient();
        MySoapHeader header = new MySoapHeader();

        header.UserId = "admin";
        header.UserPW = "admin";
        string result = proxy.GetMain(header);

        //string result = proxy.GetMsg();

        Console.WriteLine(result);
        Console.ReadKey();
    }

}
时间: 2024-11-01 03:19:46

WebService 用户名密码验证的相关文章

webservice怎么在服务器端创建用户名/密码验证

问题描述 webservice怎么在服务器端创建用户名/密码验证 解决方案 解决方案二:据我所知好像没有这个功能.想要的话只能在service方法添加token参数验证用户.解决方案三:websevice实现方式太多了xfire,cxf,springMVC都可以每种方式都有各自的验证方式

select-spring jdbc template 用户名密码验证

问题描述 spring jdbc template 用户名密码验证 我用spring jdbc template操作数据库,当我需要验证用户登陆的用户名和密码时传入两个参数userName和password,但是我怎么从数据库中select出同时满足这两个条件的User?????我现在的做法是queryForObject(sql RowMapper)返回一个User对象,然后再去getUsername和getPassword,再做比对.但个人觉得这样比较麻烦.就不能select * from u

用户名密码验证js 代码

只能输入6-20个字母.数字.下划线 function ispasswd(s) { var patrn=/^(w){6,20}$/; if (!patrn.exec(s)) return false return true } 用户名验证只能输入1-30个以字母开头的字串 function istruename(s) { var patrn=/^[a-za-z]{1,30}$/; if (!patrn.exec(s)) return false return true }

javascript用户登录用户名密码验证

管理帐号: 密码:   验证码:    

xfire调sap的webservice服务需要提供用户名密码

问题描述 xfire调sap的webservice服务需要提供用户名密码 在最近的项目中使用xfire调sap的webservice服务,但是sap的webservice需要验证系统用户名密码,在网上搜索了下xfire的资料,只有一位朋友提到了用client.addOutHandler(handler)方法,以下是他写的handler类代码 package com.client; import org.codehaus.xfire.MessageContext; import org.codeh

一段VB.NET代码,生成邮件,发送邮件,支持SMTP验证用户名密码.

smtp|发送邮件 可以生成邮件,可以发送邮件,稍做修改就可以写成一个com组件,在ASP里调用.以后我会整理成一个完整的. -------------------------------------------------------------------------------- '-------------------------------------------------'生成基本邮件格式(包括附件),发送邮件到SMTP服务器,'只能发送到发件人SMTP服务器(需验证),直接投递功

java 中用户名密码验证的代码怎么写?急!!在线等

问题描述 java 中用户名密码验证的代码怎么写?急!!在线等 import java.awt.GridLayout; import java.awt.event.*; import javax.swing.*; import com.sdu.wh.bll.UserQueryBll; import com.sdu.wh.dao.*; import com.sdu.wh.sql.*; public class LoginFrame extends JDialog implements Action

[WCF安全系列]谈谈WCF的客户端认证[用户名/密码认证]

对于基于Internet的应用,基于用户名和密码的认证方式是最为常用的,而WCF为你提供了不同模式的用户名认证方式.首先还是从用户凭证的表示说起. 一.用户名/密码认证的三种模式 基于用户名/密码的用户凭证通过类型UserNamePasswordClientCredential表示.而在ClientCredentials中,只读属性UserName表示这样一个用户凭证.你可以按照Windows凭证的方式为ChannelFactory<TChannel>或者ClientBase<TChan

带数据库的ASP用户名密码登录验证代码

  带数据库的ASP用户名密码登录验证代码,这个代码里有登录判断的完整逻辑,包括连接数据库,查询判断用户名和密码是否正确,返回重填,关闭数据库记录集等,对ASP初学者有相当好的借鉴价值: 这里连接的是SQLSERVER数据库,数据库就不上传了,里面有两个字段,name是存储用户名,userpassword是密码字段,自己手动创建个,修改本代码里面的数据库连接信息就可测试了.