zoukankan      html  css  js  c++  java
  • wse说谈(3)——策略,用户令牌

    启用策略之用户令牌(UsernameToken

    实现一下用户令牌策略(UsernameToken

    这里详细的说一下:

    服务端配置

    (一)建立web网站(略)

    (二)配置WSE

    1)在常规(general)选项卡上勾选其中的两项

    2)策略设置

    在策略(Policy)选项卡中设置,这个设置很容易,勾选Enable Policy,添加策略文件:名字为ServicePolicy

    步骤(上传图片比较麻烦,所以直接文字表达):

    服务器策略——客户端验证方法选择Username——用户和角色这里不勾选——消息保护级别默认就行——服务器证书这里不勾选在代码中指定证书,然后选择证书——完成。

    3)用户令牌设置

    这里设置比较简单,添加从UsernameTokenManager派生的类CustomUsernameTokenManager

    这里给个全的:

    protected override string AuthenticateToken(UsernameToken token)

    {

        return "111";

    }

    它就返回密码是:111。如果客户端的的用户令牌密码与这个不符合,那么服务就会拒绝客户访问。这个验证令牌的方法就是这个意思。它就是验证用户令牌中的密码,而用于比较的密码就是这个方法返回的字符串。

     

    客户端配置

    1)策略设置方法与服务端设置相似,但该选择客户端的地方要选择客户端选项(这个应该容易理解吧)。

    2)请求服务时,要设置用户令牌

    3)请求服务时,不要忘记激活用户策略

    下边给出一段完整的代码:

    public void Test()

    {

    FirstInstance.WebServiceWse client =

     new FirstInstance.WebServiceWse();

     

        UsernameToken token = null;

        token = new UsernameToken("qq","111");

        client.SetClientCredential(token);

        client.SetPolicy("ClientPolicy");

     

        Console.WriteLine(client.HelloWorld("x"));

    }

    说明一下:

    在这段代码中,设置的用户令牌密码为31

     

    注意:配置时要注意异常错误,这些异常错误这里不提了。只要是一步步的进行,注意其中的安全选项冲突,则没有问题。

     

    现在对消息的保护设置为None,然后,看看令牌在soap消息中的情况,这里只给出其中的一段:

    <wsse:UsernameToken>

      <wsse:Username>qq</wsse:Username>

      <wsse:Password Type="…PasswordDigest">

        0nAwMqEiHeF+uCbMTRL0qfQG2Mo=

      </wsse:Password>

      <wsse:Nonce>fBduFda3nmZboNcsQDBWig==</wsse:Nonce>

      <wsu:Created>2010-04-23T09:19:38Z</wsu:Created>

    </wsse:UsernameToken>

     

    这里可以看到在无消息保护级别时(消息保护选择None):用户令牌其中的两个元素:用户名和用户密码,用户名是qq,而密码以数字签名格式存在。有关签名(数字签名)及散列相关内容可见我的随笔:

    http://www.cnblogs.com/jams742003/archive/2010/04/09/1708012.html

    http://www.cnblogs.com/jams742003/archive/2010/04/09/1708315.html

     

     

  • 相关阅读:
    Thread Based Parallelism
    Thread Based Parallelism
    The Divide and Conquer Approach
    Algorithms
    FTP
    POP and IMAP
    通过 python 处理 email
    Android开发环境搭建简介
    Hello world
    mybatis3.2初学感悟
  • 原文地址:https://www.cnblogs.com/jams742003/p/1718813.html
Copyright © 2011-2022 走看看