Redirect to original preview URL after login through sitecore

I saw a question recently on Stackoverflow asking about when you send a preview link to the next person in workflow for approval, assuming that person is not logged in into sitecore yet, the preview link will redirect to sitecore login page, and after logining in, sitecore will forget about the orginal preview URL and go directly into sitecore desktop/Content editor.

So, after looking into how sitecore login pipeline works, i found this solution:

  1. In your web.config, set Authentication.SaveRawUrl to true, this will make the original requested URL passed to login page in a query string 'url'
  2.  Create class called "LoginRedirect": 
    using System.Web;
    using Sitecore.Pipelines.LoggedIn;
    using Sitecore.Web;
    
    namespace Sitecore.SharedResources.Pipelines.Login {
    
     public class LoginRedirect : LoggedInProcessor {
    
    
        public override void Process(LoggedInArgs args) {
    
          if (Sitecore.Context.GetSiteName() != "login") { return; }
    
          string url = HttpUtility.UrlDecode(
              WebUtil.GetQueryString("url", "")
          );
          if (!string.IsNullOrWhiteSpace(url)) {
            WebUtil.Redirect(url);
          }
        }
    
      }
    }
  3. Create a config file inside your include folder with the following:
    
      
        
          
            
           
      
    

Leave your thoughts in comments!

Popular posts from this blog

Caching Rendering HTML when conditional rules are applied

Update item name using Sitecore Item Web API

Building Sitecore Content Search Queryable using Rules engine