• 有效的使用WSE(学习+实践)


    学习网上好多的贴子例如:RicCC,采用证书方式,大约2天时间未果,后请教队长,学到了一个简单而有交的方式。
    1、服务器端:
         1)新建WebService;
         2)添加MyUsernameTokenManager,MySoapHeader
          
    MySoapHeader
         
    public class MyUsernameTokenManager : UsernameTokenManager
    {
        
    public MyUsernameTokenManager()
        
    {
            
    //
            
    // TODO: 在此处添加构造函数逻辑
            
    //
        }


        
    /// <summary>
        
    /// 对WebService调用过程中传递的UsernameToken进行验证
        
    /// </summary>
        
    /// <param name="token">UsernameToken</param>
        
    /// <returns>此UsernameToken所标识用户的真实密码</returns>

        protected override string AuthenticateToken(UsernameToken token)
        
    {
            
    if (token == null)
            
    {
                
    throw new ArgumentNullException();
            }

            
    switch(token.Username)
            
    {
                
    case "WseClientUseradmin":
                    
    {
                        
    return "EDFxfkY12sn6Oh52wGuR9g==admin";
                    }

                
    case "WseClientUserclient":
                    
    {
                        
    return "EDFxfkY12sn6Oh52wGuR9g=client";
                    }

                
    default:
                    
    {
                        
    return "EDFxfkY12sn6Oh52wGuR9g==admin";
                    }

            }

        }

    }
         3) 设置WebService属性 [Policy("ServerSidePolicy")]
         4)设置WES属性 General 页中两项全选
               Security页中添加 SecurityTokensManagers
               Type 修改如下 MyUsernameTokenManager(类名), App_Code(程序集名)
        5) Policy页选中 Enable Policy,添加ServerSidePolicy:Secure a service application \ Username;PerformAuthorization 不选;EnableWS-Security1。1 Extensions, ProtectionOrder 选None(rely on transport protection);完成即可。
                                         

    2、客户端:
        1)新加客户端。
        2)设置WSE 3。0:General页选中第一项;Policy页选中Enable Policy,添加EditApplicatioPolicy:ClientSidePolicy,Secure a client application ,username;SpecifyUsername Token in code;EnableWS-Sercurity1。1 Extensions ,ProtectionOrder:None;完成即可。
       3)引用WebService。
       4)
     localhost.ServiceWse svc = new localhost.ServiceWse();
                
    string username = "用户名";
                
    string password = "密码";
                UsernameToken token 
    = new UsernameToken(username, password);

                svc.SetClientCredential
    <UsernameToken>(token);
                svc.SetPolicy(
    "ClientSidePolicy");
                MessageBox.Show(svc.HelloWorld());


    写的真乱,自己都看不懂,没时间,先这样吧,想起来了再详细修改修改。

    RicCC (虽然按照他的例子我也没做成功),向Teamleader学习。
    谦虚使用进步。
  • 相关阅读:
    B-tree/B+tree/B*tree
    java拆装箱(转)
    C语言身份证信息查询系统(修改版)
    UC编程:字符读取与行读取
    UC编程:通过fwrite()和write()比较标准库函数和系统调用的速度
    UC编程:输入输出重定向(系统调用)
    UC编程:输入输出重定向(标准IO)
    UC编程:环境变量的查询与修改
    Perl基础(1)chop与chomp的区别
    假期“实习”20天生存实录
  • 原文地址:https://www.cnblogs.com/spymaster/p/694062.html
Copyright © 2020-2023  润新知