sitecoresitecore6sitecore5.2

How can I login programmatically into Sitecore?


How can I login programmatically into Sitecore? For example if you would like to connect a small part of the Sitecore API to a desktop application, you would need to login into sitecore first to access the databases etc.

Can this be done?


Solution

  • As Mark said, you will need to create a web service that your desktop app will talk to. If you need to deal with permissions in that service you have two options.

    1. Use a SecurityDisabler to make your webservice run in the context of an Admin user.

      using (new Sitecore.SecurityModel.SecurityDisabler())
      {
          // do stuff here
      }
      
    2. For more specific control you can use a UserSwitcher.

      From the Security API Cookbook page 34

      string domainUser = @"domain\user"; 
      
      if (Sitecore.Security.Accounts.User.Exists(domainUser)) 
      { 
          Sitecore.Security.Accounts.User user = 
          Sitecore.Security.Accounts.User.FromName(domainUser,false); 
      
          using (new Sitecore.Security.Accounts.UserSwitcher(user)) 
          { 
              //TODO: code to invoke as user 
          } 
      }