コード例 #1
0
 public override Packet Handle(Packet packet)
 {
     if (packet.HasChild("bind"))
     {
         var jid = packet.GetChild("bind").GetChild("jid").Value;
         Logger.Log("Full jid = " + jid);
         OnBinding(packet);
     }
     return packet;
 }
コード例 #2
0
 public override Packet Handle(Packet packet)
 {
     if (packet.Name == "failure")
     {
         // Logger.Log("Auth FAIL - " + packet);
     }
     if (packet.Name == "success")
     {
         var token = packet.GetChild("pw-token");
         var expiry = Int32.Parse(token.GetAttribute("expires_in_minutes"));
         var value = token.Value;
         Session.Token = new AuthToken(value, expiry);
         OnAuthentication(packet);
     }
     return packet;
 }
コード例 #3
0
        public override Packet Handle(Packet packet)
        {
            if (packet.HasChild("mechanisms"))
            {
                var mechanisms = packet.GetChild("mechanisms").GetChildren("mechanism");

                if (mechanisms.Any(mechanism => mechanism.Value == "PLAIN-PW-TOKEN"))
                {
                    var pwAuth = new AuthenticationPlainPw(Session);
                    pwAuth.OnAuthentication += stanza => OnAuthenticated(stanza);
                    pwAuth.Authenticate();
                }
            }

            if (packet.HasChild("bind"))
            {
                var binder = new ResourceBinder(Session);
                binder.OnBinding += stanza => OnResourceBinding(stanza);
                binder.Bind(Session.Account.Resource);
            }

            return packet;
        }