当我在ECM中选择邮件时,Sitecore注销 [英] Sitecore logs out when I select a message in ECM

查看:15
本文介绍了当我在ECM中选择邮件时,Sitecore注销的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当我在ECM中选择消息时,它都会将我重定向到Sitecore的登录页面,并在顶部显示以下URL

http://example.com/sitecore%20modules/shell/EmailCampaign/UI/Dialogs/MessageBody.aspx?message={79D6412B-824A-4349-8B94-9136D17C6E84}&lang=en&contact=Emailcampaignexampleuser_at_example_dot_com

以下是我对此问题的了解:

  1. 虽然这种情况在大多数情况下都会发生,但有时会对相同的邮件和相同的预览用户(对于上面URL中提到的联系人)起作用。
  2. 尝试在ECM中访问邮件的Sitecore用户对其尝试访问的邮件拥有所有访问权限。
  3. 我有一个在另一台服务器上运行的测试环境,在该服务器上可以很好地工作。但在生产环境中不起作用。
  4. 我正在Sitecore.NET 6.6.0(121015修订版)版本上运行我的网站。
  5. 当Sitecore将我重定向到顶部具有上述URL的登录页面时。我无法使用该页面登录。我必须去

    http://example.com/sitecore/
    

    以便重新登录。

  6. URL中的项目ID正确,它指向我尝试查看的邮件。

推荐答案

[更新]

我们通过如下方式在web.config中添加自定义预览处理程序解决了此问题

<previewManager defaultProvider="customPreview" enabled="true">
 <providers>
  <clear />
  <add name="default" type="Sitecore.Publishing.PreviewProvider, Sitecore.Kernel" />
  <add name="customPreview" type="PackageName.CustomPreview, PackageName" />
 </providers>
</previewManager>

以下是该自定义预览的后台代码:

public class CustomPreview : Sitecore.Publishing.PreviewProvider
{
  public override void SetUserContext()
  {
    string shellUser = this.GetShellUser();
    if (!string.IsNullOrEmpty(shellUser))
        AuthenticationManager.SetActiveUser(shellUser);
    else
   {
        if(!Sitecore.Context.User.Name.Split('\')[1].Equals("Anonymous"))
         AuthenticationManager.SetActiveUser(Sitecore.Context.User.Name);
   }
  }
}

[旧]

我们已解决此问题。奇怪的是,这与负载均衡器配置不当有关。我们仍然需要找出负载均衡器中出了什么问题,但是当我们从负载均衡器中删除其中一个服务器时,我们不会面临这个问题,也就是说,当流量只到达一个特定的服务器时,就不会出现这个问题。由于我们的测试环境仅部署在一台服务器上,因此在那里我们从未遇到过此问题。

这篇关于当我在ECM中选择邮件时,Sitecore注销的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆