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

时间:2013-09-13 05:31:21

标签: c# asp.net asp.net-membership sitecore

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

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

我看到它的方式,我有两个选择,既不好:

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

我真的不想这样做。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

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

然而,有时候如果你只是想改变一些像错误消息(这并不需要任何后端逻辑)的东西,你可能会更好地通过页面上的一次性javascript服务。显示时隐藏默认错误消息并显示您自己的自定义样式div和消息。做任何动作最少的部分。