第一次WCF部署成功心得(UP+证书)

 

ExpandedBlockStart.gif 代码


xml version="1.0" encoding="utf-8"  ?>
< configuration >
  
< system.web >
    
< compilation  debug ="true"   />
  
system.web >
  

  
< system.serviceModel >
    
< bindings >
      
< wsHttpBinding >
        
< binding  name ="myBinding" >
          
< security  mode ="Message" >
            
< message  clientCredentialType ="UserName"   />
          
security >
        
binding >
      
wsHttpBinding >
    
bindings >
    
< services >
      
< service  behaviorConfiguration ="AthleticService.Service1Behavior"
               name
=" AthleticService . MathOperation" >
        
< endpoint  address =""
                  binding
="wsHttpBinding"
                  contract
="AthleticService.IMathOperation"
                  
bindingConfiguration ="myBinding" > endpoint >
        
< endpoint  address ="mex"
                  binding
="mexHttpBinding"
                  contract
="IMetadataExchange"   />
        
< host >
          
< baseAddresses >
            
< add  baseAddress ="http://192.168.100.147:7878/AthleticService.MathOperation.svc"   />
          
baseAddresses >
        
host >
      
service >
    
services >
    
< behaviors >
      
< serviceBehaviors >
        
< behavior  name ="AthleticService.Service1Behavior" >
          

          
< serviceMetadata  httpGetEnabled ="True" />
          

          
< serviceDebug  includeExceptionDetailInFaults ="False"   />

          
< serviceCredentials >
            
< clientCertificate >
              
< authentication  certificateValidationMode ="None"   />
            
clientCertificate >
            
< serviceCertificate  findValue ="AthleticTestCer"
                                storeLocation ="LocalMachine"
                                storeName ="My"
                                x509FindType ="FindBySubjectName"   />
            
< userNameAuthentication  userNamePasswordValidationMode ="Custom"
                                    customUserNamePasswordValidatorType ="AthleticService.MyCustomValidator,AthleticService"   />
          
serviceCredentials >
        
behavior >
      
serviceBehaviors >
    
behaviors >
  
system.serviceModel >
configuration >


 

 

 

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Runtime.Serialization;
using  System.ServiceModel;
using  System.Text;
using  System.IdentityModel.Selectors;
using  System.IdentityModel.Tokens;

namespace  AthleticService
{

    
public   class  MathOperation : IMathOperation
    {

        
#region  IMathOperation 成员

        
public   int  Add( int  x,  int  y)
        {
            
return  x  +  y;
        }

        
#endregion
    }

    
public   class  MyCustomValidator : UserNamePasswordValidator
    {
        
public   override   void  Validate( string  userName,  string  password)
        {
            
if  ( string .IsNullOrEmpty(userName))
                
throw   new  ArgumentNullException( " userName " );

            
if  ( string .IsNullOrEmpty(password))
                
throw   new  ArgumentNullException( " password " );

            
if  (userName  !=   " admin "   ||  password  !=   " 123456 " )
                
throw   new  SecurityTokenException( " 用户名或者密码错误! " );
        }
    }
}

 

 

 

 

转载于:https://www.cnblogs.com/sofire/archive/2010/04/28/1722783.html

你可能感兴趣的:(第一次WCF部署成功心得(UP+证书))