如何更改 Sitecore 登录页面上的消息传递

本文关键字:消息传递 何更改 Sitecore 登录 | 更新日期: 2023-09-27 18:31:06

我需要更改 Sitecore 登录页面上的默认消息传递 (www.example.com/sitecore/login)。看起来该消息来自Sitecore.Client.dll中的Sitecore.sitecore.login.Login_LoginError方法。但是,该方法是私有的,这意味着我卡住了:

  • 我无法覆盖该方法,因为它是私有的。
  • 我无法从 LoginError 事件中取消订阅处理程序,因为处理程序是私有的。
  • 我无法将自己的处理程序添加到事件中以更改文本,因为我无法保证调用处理程序的顺序。

在我看来,我有两个选择,都不好:

  • 从头开始编写我自己的登录页面类,尽可能使用现有代码,但需要公开成员。
  • 使用反射查找私有处理程序,以便我可以取消订阅它。

我也不想做。有没有更好的方法?

如何更改 Sitecore 登录页面上的消息传递

在 Sitecore 中覆盖此类行为的需求很常见。反射器是你最好的朋友。在登录页的代码隐藏中找到该类并查找它。在大多数情况下,您不必通过剪切和粘贴大量代码来实际尝试重新创建它。您可以只创建一个继承登录类的相同类型的新类,然后重写发生操作的一个方法。完成后,更改.aspx文件以引用您的新类,该类将构建到您自己的程序集中,而不是 Sitecore .dll中。

但是,有时如果您只想更改诸如错误消息之类的装饰性内容(实际上不需要任何后端逻辑),则页面上的一次性javascript可能会更好地提供服务,该脚本在显示默认错误消息时隐藏并显示您自己的自定义样式div和消息。做任何活动部件最少的事情。