C# Orchard 1.8-用户登录时如何触发操作

C# Orchard 1.8-用户登录时如何触发操作,c#,orchardcms,orchardcms-1.8,C#,Orchardcms,Orchardcms 1.8,我创建了一个附加到用户部件的自定义部件(我需要它来存储与用户相关的其他数据)。我需要在用户注册帐户或每次使用该帐户进行身份验证时执行一些代码。 我将注册期间要执行的代码放在自定义部件的处理程序中,放在OnCreated方法中,但找不到如何识别登录操作。是否有处理程序的方法,我可以将需要在每次登录时执行的代码放入其中?该代码不会出现在部件中,而是出现在IUserEventHandlerLoggedIn事件中 因此,一个实施示例是: public class ModUserEvents : IUse

我创建了一个附加到用户部件的自定义部件(我需要它来存储与用户相关的其他数据)。我需要在用户注册帐户或每次使用该帐户进行身份验证时执行一些代码。
我将注册期间要执行的代码放在自定义部件的处理程序中,放在OnCreated方法中,但找不到如何识别登录操作。是否有处理程序的方法,我可以将需要在每次登录时执行的代码放入其中?

该代码不会出现在部件中,而是出现在
IUserEventHandler
LoggedIn事件中

因此,一个实施示例是:

public class ModUserEvents : IUserEventHandler {
    public ModUserEvents() {
    }

    public void LoggedIn(IUser user) {
        // go go do your stuff
    }


    #region unused events
    public void Approved(IUser user){
    }

    public void Created(UserContext context){
    }

    public void Creating(UserContext context) {
    }

    public void LoggedOut(IUser user) {
    }

    public void AccessDenied(IUser user) {
    }

    public void ChangedPassword(IUser user) {
    }

    public void SentChallengeEmail(IUser user) {
    }

    public void ConfirmedEmail(IUser user) {
    }
    #endregion
}

您需要引用Orchard.Users并使用Orchard.Users.Events添加

如果我从Orchard UI登录,这会起作用,但我也使用开放式身份验证过程,该过程显式调用Orchard.Security.IAAuthenticationService的SignIn方法。在这个过程中,我遇到了一个问题,因为用户已正确记录,但LoggedIn事件未被触发。该过程是我在Orchard gallery中找到的OpenAuthentication模块中的过程。请自己显式调用该方法?是的,问题是OpenAuthentication模块在正确执行SignIn后没有调用LoggedIn事件。如果我加上这个指令,一切都会正常。