- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要将 Kentico 7 网络应用程序转换为 Kentico 8.0.21。旧代码在 App_Code 文件夹中有一个 CMSModuleLoader 文件,其中包含 Authenticate_Execute 事件的代码。kentico 建议的 init 事件不会被触发
public partial class CMSModuleLoader
{
private class AuthenticationHandler : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts
/// </summary>
public override void Init()
{
// Assigns a handler to the SecurityEvents.Authenticate.Execute event
// This event occurs when users attempt to log in on the website
SecurityEvents.Authenticate.Execute += OnAuthentication;
}
private void OnAuthentication(object sender, AuthenticationEventArgs args)
{
if (args.User != null) //the authenticate was successful
{
try
{
var accountFacade = WebContainer.Instance.Container.GetInstance<IAccountFacade>();
accountFacade.ReconcileOnLogin(args.UserName);
}
catch (Exception e)
{
var logger = LogManager.GetCurrentClassLogger();
var ex = new Exception("IAccountFacade.ReconcileOnLogin method throw an error communicating with dynamics, the issue is not resolvable from Kentico thus regardless of the permission level of the current user, the exception will be bubbled up and the user will be shown error details or the custom error page.", e);
logger.Fatal(x => x("The current exception is caused by dynamics/data problems and the user will not be allowed to login. A system admin with access to dynamics is required to resolve the problem.", e));
throw ex;
}
//ResetPasswordAttempts(args.User);
}
}
}
/// <summary>
/// Attribute class that ensures the loading of custom handlers
/// </summary>
private class CustomSecurityEventsAttribute : CMS.Base.CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts
/// </summary>
public override void Init()
{
SecurityEvents.Authenticate.Execute += new EventHandler<AuthenticationEventArgs>(Authenticate_Execute);
}
/// <summary>
/// called on every kentico authenticate attempt
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
最佳答案
在 Kentico 8.0 中,所有与身份验证相关的事件都已移至 CMS.Membership.SecurityEvents
。用法如下:
using System.Data;
using CMS.Base;
using CMS.Membership;
using CMS.DataEngine;
[AuthenticationHandler]
public partial class CMSModuleLoader
{
/// <summary>
/// Custom attribute class.
/// </summary>
private class AuthenticationHandler : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts
/// </summary>
public override void Init()
{
// Assigns a handler to the SecurityEvents.Authenticate.Execute event
// This event occurs when users attempt to log in on the website
SecurityEvents.Authenticate.Execute += OnAuthentication;
}
}
}
有关更多信息,请参阅 documentation .
关于c# - Kentico CMS v8.2 中的 Authenticate_Execute 事件覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479401/
我正在制定新 kentico 版本的基本要求。我们希望按用户组在页面或 Web 部件级别限制内容。我需要做什么才能确保搜索结果仅返回特定组中的用户应该看到的内容。 因此,三个页面中,第 2 页仅限于组
使用 Kentico CMS 框架(版本 7)如何嵌套多个 CMS Repeater? 我已经尝试了以下绑定(bind)父级的方法,但是如何让子级绑定(bind)?
有没有办法在 Kentico 管理 UI 上创建快捷方式? 这些将用于启动我们的 CMS 用户常用的 Kentico 之外的内部应用程序或页面(其中一些可能处理 Kentico 数据,并且我们利用 K
我在 Kentico 8.2 中工作,我希望用户必须接受所有条款和条件。为此,我使用了一个复选框。如果未选中该复选框,则用户将无法提交表单。 这是无法通过 Kentico 帮助实现的,它说我可以通过使
您将如何在 Kentico CMS (v5.0) 中设置 301 重定向? 我想为客户提供一种简单的方法(最好是通过 CMS Desk 界面)在最近在 Kentico 上重新实现的网站中设置 301
我正在寻找一种方法来检索 kentico 页面的替代 URL 值。 按照此示例在 Kentico 12 SP 中启用备用网址:https://docs.kentico.com/k12sp/develo
如何在 Kentico CMS Masterpage 中编辑 HTML 标签,即添加类属性? 目前我有这个: 但我想要: 从屏幕截图中您可以看到 HTML 标记不可编辑。 有没有办
Kentico中的门户模板和ASPX模板有什么区别? 哪个更可取? 最佳答案 作为“铁杆”开发人员和经认证的 Kentico 培训师,我始终使用并始终推荐在 ASPX 模板上使用门户引擎。 我这么说是
我有一个 Kentico 5.5 站点和一些自定义文档类型。当尝试在 CMSDesk 中编辑主页时,它显示所需文档不再存在,请选择另一个文档。 我没有删除主页,但缺少文档类型。因此,我通过从我的另一个
为页面类型创建字段时,我有一个日期选择器。输入数据时,还包括时间选择器。是否可以选择删除时间选择器部分? 最佳答案 您所需要做的就是取消选中该字段“编辑控制设置”下的“编辑时间”复选框。这将删除控制的
为页面类型创建字段时,我有一个日期选择器。输入数据时,还包括时间选择器。是否可以选择删除时间选择器部分? 最佳答案 您所需要做的就是取消选中该字段“编辑控制设置”下的“编辑时间”复选框。这将删除控制的
我正在使用 Kentico 8.2 版,并试图让用户输入多张优惠券。在 ECommerceContext.CurrentShoppingCart 对象中,您有一个可以设置的 ShoppingCartC
我的页面类型为日期字段“日期”,但我似乎无法让中继器按日期显示项目。 我的计划是有一个包含日期、主题和作者的表,并使用 jquery 插件按日期排序。 最佳答案 编辑:如果您将 DocumentTyp
我是 Kentico 的新手,正在使用版本 9 的网站。一位图形设计师问我是否可以创建一个宏或代码,将页面的页面类型作为 css 类添加到 body 标记中。以前有人这样做过吗? 最佳答案 以下是一个
我试图限制编辑者在 Kentico 节点上创建错误的文档。我知道有页面类型 -> 范围,但就我而言,很难配置它。在我的场景中,我有一个像这样的重复节点结构: Root (template: ROOT)
我有一个 kentico CMSListMenu,其中最深包含 4 个级别,我想将菜单显示为内容左侧的嵌套列表,这对于 3 个级别来说效果很好,但我无法显示第 4 个级别. 我在另一个网站上使用完全相
我们创建了一个自定义 FormEngineUserControl 来使用 3 个文本输入(日/月/年)来捕获日期输入。 在服务器上,我们重写了 bool IsValid() 方法,该方法工作正常,并在
我在页面模板中有以下代码,但不知道如何格式化 ReleaseDate显示完整的月份和年份,例如2016 年 10 月。请帮忙! Published: 在不同的转换中,我有这个 它有效,
自定义页面类型将多选表单控件属性值存储为管道分隔字符串,例如 "foo|bar"。 在页面类型 ASCX 转换中,我能够使用以下方法成功检索并显示 foo|bar 属性值: 目标是在管道 | 字符上
我在 CMS_USER 表中添加了两个新的自定义字段。 字段都是整型,Form控件都是Drop-Down list类型。 目前这两个下拉列表都由编辑控件设置中的 SQL 查询填充。 我想实现的功能是,
我是一名优秀的程序员,十分优秀!