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


    代码


    <?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>


    代码
    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("用户名或者密码错误!");
            }
        }
    }
  • 相关阅读:
    shiro源码篇
    python内置模块之collections(六)
    python之自然语言处理入门(一)
    python第三方库之numpy基础
    python算法之近似熵、互近似熵算法
    MongoDB之conf配置文件详解(五)
    MongoDB之主从复制和副本集(四)
    MongoDB之python简单交互(三)
    python设计模式之常用创建模式总结(二)
    python设计模式之单例模式(一)
  • 原文地址:https://www.cnblogs.com/sofire/p/1722783.html
Copyright © 2020-2023  润新知