zoukankan      html  css  js  c++  java
  • 有效的使用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学习。
    谦虚使用进步。
  • 相关阅读:
    January 25th, 2018 Week 04th Thursday
    January 24th, 2018 Week 04th Wednesday
    January 23rd, 2018 Week 04th Tuesday
    January 22nd, 2018 Week 04th Monday
    January 21st, 2018 Week 3rd Sunday
    January 20th, 2018 Week 3rd Saturday
    January 19th, 2018 Week 3rd Friday
    January 18th, 2018 Week 03rd Thursday
    January 17th, 2018 Week 03rd Wednesday
    January 16th, 2018 Week 03rd Tuesday
  • 原文地址:https://www.cnblogs.com/spymaster/p/694062.html
Copyright © 2011-2022 走看看