private void GetTickets(RequestSecurityTokenResponseType[] result, SecurityTokenService securService, MSNTicket msnticket) { if (securService.pp != null) { if (securService.pp.credProperties != null) { foreach (credPropertyType credproperty in securService.pp.credProperties) { if (credproperty.Name == "MainBrandID") { msnticket.MainBrandID = credproperty.Value; } if (credproperty.Name == "CID" && !String.IsNullOrEmpty(credproperty.Value)) { msnticket.OwnerCID = long.Parse(credproperty.Value, NumberStyles.HexNumber); } } } if (securService.pp.extProperties != null) { foreach (extPropertyType extproperty in securService.pp.extProperties) { if (extproperty.Name == "CID" && !String.IsNullOrEmpty(extproperty.Value)) { msnticket.OwnerCID = long.Parse(extproperty.Value, NumberStyles.HexNumber); } } } } foreach (RequestSecurityTokenResponseType token in result) { SSOTicketType ticketype = SSOTicketType.None; switch (token.AppliesTo.EndpointReference.Address.Value) { case "contacts.msn.com": ticketype = SSOTicketType.Contact; break; case "messengerclear.live.com": ticketype = SSOTicketType.Clear; break; case "storage.msn.com": ticketype = SSOTicketType.Storage; break; case "sup.live.com": ticketype = SSOTicketType.WhatsUp; break; case "directory.services.live.com": ticketype = SSOTicketType.Directory; break; case "rpstauth.live.com": ticketype = SSOTicketType.RPST; break; } SSOTicket ssoticket = new SSOTicket(ticketype); if (token.AppliesTo != null) { ssoticket.Domain = token.AppliesTo.EndpointReference.Address.Value; } if (token.RequestedSecurityToken.BinarySecurityToken != null) { ssoticket.Ticket = token.RequestedSecurityToken.BinarySecurityToken.Value; } if (token.RequestedProofToken != null && token.RequestedProofToken.BinarySecret != null) { ssoticket.BinarySecret = token.RequestedProofToken.BinarySecret.Value; } if (token.Lifetime != null) { ssoticket.Created = XmlConvert.ToDateTime(token.Lifetime.Created.Value, "yyyy-MM-ddTHH:mm:ssZ"); ssoticket.Expires = XmlConvert.ToDateTime(token.Lifetime.Expires.Value, "yyyy-MM-ddTHH:mm:ssZ"); } lock (msnticket.SSOTickets) { msnticket.SSOTickets[ticketype] = ssoticket; } } }
private void GetTickets(RequestSecurityTokenResponseType[] result, SecurityTokenService securService, MSNTicket msnticket) { if (securService.pp != null) { if (securService.pp.credProperties != null) { foreach (credPropertyType credproperty in securService.pp.credProperties) { if (credproperty.Name == "MainBrandID") { msnticket.MainBrandID = credproperty.Value; } if (credproperty.Name == "CID" && !String.IsNullOrEmpty(credproperty.Value)) { msnticket.OwnerCID = long.Parse(credproperty.Value, NumberStyles.HexNumber); } } } if (securService.pp.extProperties != null) { foreach (extPropertyType extproperty in securService.pp.extProperties) { if (extproperty.Name == "CID" && !String.IsNullOrEmpty(extproperty.Value)) { msnticket.OwnerCID = long.Parse(extproperty.Value, NumberStyles.HexNumber); } } } } foreach (RequestSecurityTokenResponseType token in result) { SSOTicketType ticketype = SSOTicketType.None; switch (token.AppliesTo.EndpointReference.Address.Value) { case "contacts.msn.com": ticketype = SSOTicketType.Contact; break; case "messengerclear.live.com": ticketype = SSOTicketType.Clear; break; case "storage.msn.com": ticketype = SSOTicketType.Storage; break; case "sup.live.com": ticketype = SSOTicketType.WhatsUp; break; case "directory.services.live.com": ticketype = SSOTicketType.Directory; break; case "rpstauth.live.com": ticketype = SSOTicketType.RPST; break; } SSOTicket ssoticket = new SSOTicket(ticketype); if (token.AppliesTo != null) ssoticket.Domain = token.AppliesTo.EndpointReference.Address.Value; if (token.RequestedSecurityToken.BinarySecurityToken != null) ssoticket.Ticket = token.RequestedSecurityToken.BinarySecurityToken.Value; if (token.RequestedProofToken != null && token.RequestedProofToken.BinarySecret != null) { ssoticket.BinarySecret = token.RequestedProofToken.BinarySecret.Value; } if (token.Lifetime != null) { ssoticket.Created = XmlConvert.ToDateTime(token.Lifetime.Created.Value, "yyyy-MM-ddTHH:mm:ssZ"); ssoticket.Expires = XmlConvert.ToDateTime(token.Lifetime.Expires.Value, "yyyy-MM-ddTHH:mm:ssZ"); } lock (msnticket.SSOTickets) { msnticket.SSOTickets[ticketype] = ssoticket; } } }