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

Redirect 登录到Sitecore桌面后重定向到原始URL,redirect,login,workflow,sitecore,preview,Redirect,Login,Workflow,Sitecore,Preview,我很难理解如何向工作流中的下一个人发送链接。 到目前为止,我有一些 http:/xxxx/?sc_mode=预览&sc_itemid=“+workflowItem.ID+”&sc_lang=en” url工作正常,但问题是用户被重定向到登录页面。到目前为止,这是有意义的,但是登录后的用户如何再次重定向到链接的项目?我如何扩展登录方法/管道来实现这一点 也许我在尝试一些简单的复杂的事情。还有其他想法吗 注意:我无法发送到该项目的直接链接,因为该项目可能仍在draft-master数据库中,而不在w

我很难理解如何向工作流中的下一个人发送链接。 到目前为止,我有一些 http:/xxxx/?sc_mode=预览&sc_itemid=“+workflowItem.ID+”&sc_lang=en” url工作正常,但问题是用户被重定向到登录页面。到目前为止,这是有意义的,但是登录后的用户如何再次重定向到链接的项目?我如何扩展登录方法/管道来实现这一点

也许我在尝试一些简单的复杂的事情。还有其他想法吗

注意:我无法发送到该项目的直接链接,因为该项目可能仍在draft-master数据库中,而不在web数据库中

任何帮助都将不胜感激


谢谢

您可以通过执行以下操作来实现这一点:

1-在
web.config
中将此设置设置为
true
Authentication.SaveRawUrl

2-创建名为
loginDirect
的类:

使用System.Web;
使用Sitecore.Pipelines.LoggedIn;
使用Sitecore.Web;
命名空间Sitecore.SharedResources.Pipelines.Login{
公共类LoginDirect:LoggedInProcessor{
公共覆盖无效进程(LoggedInArgs args){
if(Sitecore.Context.GetSiteName()!=“login”){return;}
字符串url=HttpUtility.UrlDecode(
WebUtil.GetQueryString(“url”,“”)
);
如果(!string.IsNullOrWhiteSpace(url)){
重定向(url);
}
}
}
}
3-在include文件夹中创建一个配置文件,其中包含以下内容(替换程序集名称):



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

非常有效。非常感谢!