Skip to content
Microsoft Dynamics 365 CRM Tips and Tricks
By Inogic
  • Blogs
  • D365 Apps
  • Inogic
  • D365 / Power Platform Services
  • Maplytics Docs
  • D365 Apps Docs
    • Omnichannel Apps
      • WhatsApp4Dynamics
      • TextSMS4Dynamics
      • LiveChat4Dynamics
    • File and Storage Managment
      • Attach2Dynamics
      • SharePoint Security Sync
    • Visualization Apps
      • Map My Relationships
      • Kanban Board
      • Business Process Checklist
    • Productivity Apps
      • Click2Clone
      • Click2Export
      • Undo2Restore
      • Lead Assignment and Distribution Automation
      • Alerts4Dynamics
      • Translate4Dynamics
      • Subscription Recurring Billing Management
    • User Adoption Apps
      • DeDupeD
      • User Adoption Monitor
      • Gamifics365
    • Integration Apps
      • Marketing4Dynamics
      • InoLink

How to Login to various CRM deployments

By Inogic | March 5, 2009
0 Comment

CRM supports various Deployment methods and unfortunately for the developers the method to connect to each of these differs. So here are the login functions for each of the Deployment methods supported by Dynamics CRM.
On Premise CRM connection:
On premise uses AD for authentication.
CrmService service = new CrmService();
service.Url = “http://” + servername + “/mscrmservices/2007/crmservice.asmx”;
service.CrmAuthenticationTokenValue.OrganizationName = “orgname”;
service.CrmAuthenticationTokenValue.AuthenticationType = 0;
service.Credentials = new System.Net.NetworkCredential(“username”, “Password”, “DomainName”);
OR
crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;
Live CRM connection:
CRM Live uses Passport authentication. It requires a reference to the Idcrlwrapper be added. The Idcrlwrapper is available along with the SDK as helper files.
Make sure you have copied the msidcrl40.dll to the system32 folder before you try to run this code.
CrmDiscoveryService discoveryService = new CrmDiscoveryService();
discoveryService.Url = “https://dev.crm.dynamics.com/MSCRMServices/2007/Passport/CrmDiscoveryService.asmx“;
RetrievePolicyRequest policyRequest = new RetrievePolicyRequest();
RetrievePolicyResponse policyResponse = (RetrievePolicyResponse)discoveryService.Execute(policyRequest);
// Retrieve a Windows Live ticket from the Live
service.LogonManager lm = new LogonManager();
string passportTicket = lm.Logon(“LiveWindowsUserId”, “password”, “crm.dynamics.com”, policyResponse.Policy, “Production”);
RetrieveCrmTicketRequest crmTicketRequest = new RetrieveCrmTicketRequest();
crmTicketRequest.OrganizationName = “OrganizationName”;
crmTicketRequest.PassportTicket = passportTicket;
RetrieveCrmTicketResponse crmTicketResponse = (RetrieveCrmTicketResponse)discoveryService.Execute(crmTicketRequest);
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = 1;
token.CrmTicket = crmTicketResponse.CrmTicket;
token.OrganizationName = crmTicketResponse.OrganizationDetail.OrganizationName;
Now, once you have the token assign it to the crmservice object as we do in on premise.
Hosted CRM connection:
This uses SPLA authentication. You need to use the userid and password provided to you by your hosting provider. You would also need to get the discovery URL from them.
From the discovery service URL you can retrieve the list of organizations.
RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();
orgRequest.UserId = username;
orgRequest.Password = password;
RetrieveOrganizationsResponse orgResponse = (RetrieveOrganizationsResponse)disco.Execute(orgRequest);
//Find the desired organization with which you want to connect.
//Retrieve the ticket.
RetrieveCrmTicketRequest ticketRequest = new RetrieveCrmTicketRequest();
ticketRequest.OrganizationName = organization;
ticketRequest.UserId = username;
ticketRequest.Password = password;
RetrieveCrmTicketResponse ticketResponse = (RetrieveCrmTicketResponse)disco.Execute(ticketRequest);
//Create the CrmService Web service proxy.
CrmAuthenticationToken sdktoken = new CrmAuthenticationToken();
sdktoken.AuthenticationType = 2;
sdktoken.OrganizationName = organization;
sdktoken.CrmTicket = ticketResponse.CrmTicket;
Now, once you have the token assign it to the crmservice object as we do in on premise.

Category: Dynamics CRM Tags: Connection, CRM Live, CRM On-premise, CRM Online, Login, Partner Hosted
Post navigation
← List of Events available to trap in Scripts when saving a Dynamics CRM Form How to use the Duplicate Detection Feature of CRM →

Follow Us!

Follow Us on FacebookFollow Us on TwitterFollow Us on LinkedInFollow Us on YouTubeFollow Us on InstagramFollow Us on E-mailFollow Us on Docs

Blog Series

  • Power Apps – Model Driven Apps
  • Power Apps – Canvas App
  • Power Pages
  • Power Automate
  • Power BI
  • AI Builder
  • Copilot
  • Azure OpenAI
  • Microsoft Teams
  • Dynamics 365 for Field Service

Recent Innovations

Translate Dynamics 365 Data in Real-Time using Azure AI Translator with our New App!

Summer 2025 Dynamics 365 Maps Release: Smarter Routing, Azure Maps, Canvas Apps & More!

How to Create Mailchimp Email Campaigns Directly from Dynamics 365 CRM!

Detect and Merge Dynamics 365 CRM Duplicate Records with New DeDupeD Features!

SharePoint Metadata – Enhance document searchability in Dynamics 365 CRM integration!

WhatsApp, Text SMS, and Live Chat Integration – Dynamics 365 Omnichannel suite by Inogic!

Recent Posts

  • Role-Based Access Control for Document Security in Dynamics 365 CRM!
  • How to Create and Modify a Segment in Customer Insights – Journeys Using the Web API
  • Dynamics 365 WhatsApp Integration: Trigger vs Segment Customer Journeys – Explained!
  • Add Process Mining Report in Power BI Workspace
  • Webinar: Copilot Agents in Action: Document Reading, Response Generation, and Email Drafting!

Archives

SiteLock
Copyright © 2025 Inogic. All Rights Reserved
Iconic One Theme | Powered by Wordpress