登录Sitecore桌面后重定向到原始URL

Sna*_*per 3 workflow redirect login sitecore preview

我很难理解如何向工作流程中的下一个人发送链接.到目前为止我有类似http:/ xxxx /?sc_mode = preview&sc_itemid ="+ workflowItem.ID +"&sc_lang = en"网址工作正常,但问题是用户被重定向到登录页面.这是有道理的但是,如何将登录后的用户再次重定向到已链接的项目?如何扩展登录方法/管道以实现此目的?

也许我正在尝试复杂的东西,当它可以很简单.还有其他想法吗?

注意:我无法发送项目的直接链接,因为该项目可能仍在草稿 - 主数据库中,而不是在Web数据库中.

任何帮助,将不胜感激.

谢谢

Ahm*_*our 6

您可以通过执行以下操作来实现此目的:

1 -设置此设置trueweb.config:Authentication.SaveRawUrl

2-创建名为的类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);
      }
    }

  }
}
Run Code Online (Sandbox Code Playgroud)

3-使用以下内容在include文件夹中创建配置文件(替换程序集名称):

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <processors>
      <loggedin>
        <processor mode="on"
            type="Sitecore.SharedResources.Pipelines.Login.LoginRedirect,
                  [Your Assmbly Name]" />
      </loggedin>
    </processors>
  </sitecore>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这将在登录到原始URL后重定向用户.