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

3
我很难理解如何将链接发送给工作流中的下一个人。目前我有类似于http:/xxxx/?sc_mode=preview&sc_itemid=" + workflowItem.ID + "&sc_lang=en"的东西。这个URL可以正常工作,但问题在于用户被重定向到登录页面。这是有道理的,但是用户在登录后如何再次重定向到链接的项目呢?我该如何扩展登录方法/管道来实现这一点?
也许我正在尝试复杂的事情,其实可以更简单。还有其他的想法吗?
注:我不能直接发送项目的直接链接,因为该项目可能仍处于草稿-主数据库中,而不是Web数据库中。
任何帮助都将不胜感激。
谢谢。
1个回答

6
你可以通过以下方式实现:

1- 在web.config中将此设置设置为trueAuthentication.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);
      }
    }

  }
}

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>

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

非常顺利地完成了工作。非常感谢! - Snapper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接