c# – 如何更改Sitecore登录页面上的消息?
作者:互联网
我需要在Sitecore登录页面(www.example.com/sitecore/login)上更改默认消息.看起来该消息来自Sitecore.Client.dll中的Sitecore.sitecore.login.Login_LoginError方法.但是,这种方法是私有的,这意味着我陷入困境:
>我无法覆盖该方法,因为它是私有的.
>我无法取消订阅LoginError事件中的处理程序,因为处理程序是私有的.
>我无法将自己的处理程序添加到事件中以更改文本,因为我无法保证调用处理程序的顺序.
我看到它的方式,我有两个选择,既不好:
>从头开始编写我自己的登录页面类,尽可能使用现有代码,但需要公开我需要的成员.
>使用反射来查找私有处理程序,以便我可以从事件中取消订阅.
我真的不想这样做.有没有更好的办法?
解决方法:
在Sitecore中重写此类行为的需求很常见.反射器是你最好的朋友.在登录页面的代码隐藏中找到该类并查找它.在大多数情况下,您不必通过剪切和粘贴大量代码来实际尝试重新创建它.您可以创建一个继承登录类的相同类型的新类,然后只覆盖执行操作的一个方法.完成后,更改.aspx文件以引用您的新类,该类将构建到您自己的程序集中而不是Sitecore .dll中.
但是,有时候如果你只是想改变一些像错误信息那样的东西(这并不需要任何后端逻辑),你可能会更好地通过隐藏默认值的页面上的一次性javascript服务显示错误消息并显示您自己的自定义样式div和消息.做任何移动部件最少的东西.
标签:c,asp-net,asp-net-membership,sitecore 来源: https://codeday.me/bug/20190709/1408179.html