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

 

ExpandedBlockStart.gif 代码


<? xml version="1.0" encoding="utf-8"  ?>
< configuration >
  
< system.web >
    
< compilation  debug ="true"   />
  
</ system.web >
  
<!--  部署服务库项目时,必须将配置文件的内容添加到 
  主机的 app.config 文件中。System.Configuration 不支持库的配置文件。
-->
  
< 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" >
          
<!--  为避免泄漏元数据信息,
          请在部署前将以下值设置为 false 并删除上面的元数据终结点  
-->
          
< serviceMetadata  httpGetEnabled ="True" />
          
<!--  要接收故障异常详细信息以进行调试, 
          请将下值设置为 true。在部署前 
            设置为 false 以避免泄漏异常信息
-->
          
< 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( " 用户名或者密码错误! " );
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值