wcf自定义用户名密码验证


一:创建证书

       makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=TestServer -sky exchange -pe

        


二;建立wcf服务

     配置文件:




  
    
  
  
    
    
  

  
    
    
      
        
          
          

          
            
              
              
            
            
            
            
                   
        
      
    

    
     
      
        
          
            
          
        
      
    
    

         
        
          
            
          
        
        
      
    
    
    
    
        
        
    
  
  
    
    
    
  



三:增加一个自定义验证类

       Validator类,它要继承System.IdentityModel.Selector.UserNamePasswordValidator基类。

 public class Validator : UserNamePasswordValidator 
    {
         
        public override void Validate(string userName, string password)
        {
            if (!string.Equals(userName, "sa") || !string.Equals(password, "1234"))
                throw new Exception("Access Denied");
        } 
    }

四:前端调用

     配置文件



     
        
    
    
        
            
                
                    
                        
                    
                
            
        
        
            
                
                    
                
            
        
          
       
        
          
            
              
                
                
              
            
          
        
      
    
       调用时需要知道用户名密码

 private void button1_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();

            sc.ClientCredentials.UserName.UserName = "sa";
            sc.ClientCredentials.UserName.Password = "1234";
            MessageBox.Show(sc.GetData(22));

        }




你可能感兴趣的:(wcf)