private RetrieveCrmTicketResponse GetCrmTicketResponse(IAuthenticationRequest tokenRequest) { // Retrieve a CrmTicket from the CrmDiscoveryService Web service. RetrieveCrmTicketRequest crmTicketRequest = new RetrieveCrmTicketRequest(); crmTicketRequest.OrganizationName = tokenRequest.OrganizationName; crmTicketRequest.UserId = tokenRequest.DomainName + @"\" + tokenRequest.Username; crmTicketRequest.Password = Globals.UnwrapSecureString(tokenRequest.Password); RetrieveCrmTicketResponse crmTicketResponse = null; try { crmTicketResponse = (RetrieveCrmTicketResponse)_disco.Execute(crmTicketRequest); } catch (SoapException se) { // examine SoapException for authentication failure } catch (Exception ex) { AddExceptionData(ex, tokenRequest); throw; } return(crmTicketResponse); }
/// <summary> /// Gets the ticket. /// </summary> /// <param name="url"> /// The URL. /// </param> /// <param name="login"> /// The login. /// </param> /// <param name="password"> /// The password. /// </param> /// <param name="organizationName"> /// Name of the organization. /// </param> /// <param name="partner"> /// The partner. /// </param> /// <param name="environment"> /// The environment. /// </param> /// <param name="authType"> /// The auth Type. /// </param> /// <returns> /// returns Ticket /// </returns> public CrmCampaignIntegrations.Core.Ticket GetTicket(string url, string login, string password, string organizationName, string partner, string environment, int authType) { var disco = new CrmDiscoveryService(); if (authType != 1) { var discoPath = @"{0}/CrmDiscoveryService.asmx".FormatWith(((AuthenticationType)authType).ToString()); url = url.ToLower().Replace("crmservice.asmx", discoPath).Replace("metadataservice.asmx", discoPath); disco.Url = url; disco.Credentials = SecurityUtil.CreateNetworkCredential(login, password); var ticketRequest = new RetrieveCrmTicketRequest { OrganizationName = organizationName, UserId = login, Password = password }; var ticketResponse = (RetrieveCrmTicketResponse)disco.Execute(ticketRequest); return(new CrmCampaignIntegrations.Core.Ticket(ticketResponse.CrmTicket, organizationName, (AuthenticationType)authType, DateTime.Parse(ticketResponse.ExpirationDate))); } if (string.IsNullOrEmpty(partner)) { var r = new Regex(@"http[s]?://.*?\.(crm[45]?.dynamics.com){1}"); var match = r.Match(url); if (match.Success) { partner = match.Groups[1].Value; } } return(this.GetPassportTiket(login, password, organizationName, partner, environment)); }
private RetrieveCrmTicketResponse GetAdTicket() { var crmDiscoveryService = new CrmDiscoveryService(); crmDiscoveryService.Url = this.Settings.Url.ToLower().Replace("crmservice.asmx", "AD/crmdiscoveryservice.asmx"); crmDiscoveryService.Credentials = CrmHelper.CreateNetworkCredential(this.Settings.User, this.Settings.Password); var crmTicketRequest = new RetrieveCrmTicketRequest(); crmTicketRequest.OrganizationName = this.Settings.Organization; return((RetrieveCrmTicketResponse)crmDiscoveryService.Execute(crmTicketRequest)); }
private RetrieveCrmTicketResponse GetPassportTicket() { var crmDiscoveryService = new CrmDiscoveryService(); crmDiscoveryService.Url = String.Format("https://dev.{0}/mscrmservices/2007/Passport/crmdiscoveryservice.asmx", this.Settings.Partner); var policyResponse = (RetrievePolicyResponse)crmDiscoveryService.Execute(new RetrievePolicyRequest()); var passportTicket = LiveIdTicketManager.RetrieveTicket(Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"), this.Settings.Partner, this.Settings.User, this.Settings.Password, policyResponse.Policy, LiveIdTicketManager.LiveIdEnvironment.PROD); var crmTicketRequest = new RetrieveCrmTicketRequest(); crmTicketRequest.OrganizationName = this.Settings.Organization; crmTicketRequest.PassportTicket = passportTicket; return((RetrieveCrmTicketResponse)crmDiscoveryService.Execute(crmTicketRequest)); }
/// <summary> /// Get Passport Tiket /// </summary> /// <param name="login"> /// The login. /// </param> /// <param name="password"> /// The password. /// </param> /// <param name="organizationName"> /// The organization name. /// </param> /// <param name="partner"> /// The partner. /// </param> /// <param name="environment"> /// The environment. /// </param> /// <returns> /// Passport Tiket /// </returns> private CrmCampaignIntegrations.Core.Ticket GetPassportTiket(string login, string password, string organizationName, string partner, string environment) { var disco = new CrmDiscoveryService { Url = String.Format("https://dev.{0}/MSCRMServices/2007/{1}/CrmDiscoveryService.asmx", string.IsNullOrEmpty(partner) ? "crm.dynamics.com" : partner, "Passport") }; var retrievePolicyResponse = (RetrievePolicyResponse)disco.Execute(new RetrievePolicyRequest()); var passportTicket = LiveIdTicketManager.RetrieveTicket(Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"), partner, login, password, retrievePolicyResponse.Policy, LiveIdTicketManager.LiveIdEnvironment.PROD); var retrieveOrganizationsRequest = new RetrieveOrganizationsRequest { PassportTicket = passportTicket }; var retrieveOrganizationsResponse = (RetrieveOrganizationsResponse)disco.Execute(retrieveOrganizationsRequest); string onlineOrganizationName = string.Empty; foreach (OrganizationDetail organizationDetail in retrieveOrganizationsResponse.OrganizationDetails) { if (!organizationDetail.FriendlyName.Equals(organizationName)) { continue; } var detail = organizationDetail; onlineOrganizationName = detail.OrganizationName; } var retrieveCrmTicketRequest = new RetrieveCrmTicketRequest(); retrieveCrmTicketRequest.OrganizationName = onlineOrganizationName; retrieveCrmTicketRequest.PassportTicket = passportTicket; var retrieveCrmTicketResponse = (RetrieveCrmTicketResponse)disco.Execute(retrieveCrmTicketRequest); return(new CrmCampaignIntegrations.Core.Ticket(retrieveCrmTicketResponse.CrmTicket, retrieveCrmTicketResponse.OrganizationDetail.OrganizationName, (AuthenticationType)1, DateTime.Parse(retrieveCrmTicketResponse.ExpirationDate, null, DateTimeStyles.AdjustToUniversal))); }