WebService 用户名密码验证
2015-03-25 11:05
260 查看
原文:WebService 用户名密码验证在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是证书.下面程序使用的是用户名/密码的方式,很简单的一个程序.
项目截图:
先看服务端的代码(ws_Service)
MySoapHeader.cs 这里通过继承SoapHeader实现对用户名/密码的验证
Service1.asmx文件代码:
这里面有两个方法,其中GetMsg方法是不需要验证的,而GetMain方法需要进行用户名/密码的验证,这个可以在客户端调用时进行验证.
客户端添加对服务端的引用…
Program.cs文件
项目截图:
先看服务端的代码(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(); } }
相关文章推荐
- HTTP 和 SOAP 标头 来传递用户名密码 验证webservice用户认证
- C#调用Oracle ebs生成Webservice,加用户名密码验证
- WebService 用户名密码验证
- cxf 调用 webservice服务时传递 服务器验证需要的用户名密码
- AXIS 调用 webservice服务时传递 服务器验证需要的用户名密码
- WebService 用户名密码验证
- 用户名密码判断验证
- JS的常用正则表达式 验证密码用户名等
- 验证用户名和密码是否为空的两种方式
- linq登录界面验证用户名和密码是否正确
- 【Tech】单点登录系统CAS服务器端搭建及实现用户名密码由MYSQL数据库验证
- 验证用户名和密码
- servlet入门实例:servlet验证登录用户名和密码
- SharePoint Host Header输入用户名密码无法通过验证的解决办法
- jsp验证用户名和密码
- inform表单验证,正则表达式,用户名,身份证,密码,验证码
- WCF实现自定义用户名和密码验证,并以https传输
- Struts2+Spring+Hibernate step by step 03 整合Spring之一(在DAO层验证用户名和密码)
- siverlight+wcf(basicHttpBinding)自定义用户名密码验证