1

我创建了包含单个超链接的新登录皮肤对象。此皮肤对象被放置在另一个自定义皮肤对象上。单击此登录超链接时,我会打开一个 div 弹出窗口,此 div 包含放置在 Desktopmodules/Admin/Autanticationservice/ 中的 DNN 内置登录控件。现在,当登录模块弹出并单击登录按钮时,这会触发 DNN 登录模块的 login_clicked 事件。在这里,我通过调试看到用户通过了身份验证,但是在最后一行“OnUserAuthenticated(args)”的这个方法中没有被调用......???为什么??? 有任何想法吗..???

4

2 回答 2

2

我也有这个,还没有弄清楚如何解决真正的问题,但你可以通过替换来解决它:

UserController.ValidateUser(PortalId, txtUsername.Value, txtPassword.Value, "DNN", string.Empty, PortalSettings.PortalName, IPAddress, ref loginStatus);

UserController.UserLogin(PortalSettings.PortalId, txtUsername.Value, txtPassword.Value, string.Empty, PortalSettings.PortalName, IPAddress, ref loginStatus, false);

它至少会让你登录,但你必须自己处理重定向。

这是一个 hack,我对此不满意,但希望这对其他人有帮助。

于 2013-03-14T13:26:21.377 回答
0

我遇到了同样的问题,看起来又长又难,最终不得不下载完整的源代码并按照代码在完整的 dnn 应用程序中登录:

添加以下内容后,我可以成功验证用户身份:

        // from above
        UserController.UserLogin(PortalSettings.PortalId, txtUsername.Value, txtPassword.Value, string.Empty, PortalSettings.PortalName, IPAddress, ref loginStatus, false);
        // login and auth with DNN
        var existingUserEventArgs = new UserAuthenticatedEventArgs(loginUser, loginUser.Username, loginStatus, "DNN");
        existingUserEventArgs.Authenticated = true;
        EventManager.Instance.OnUserAuthenticated(new UserEventArgs { User = loginUser });
        // success - redirect - or what ever
于 2020-12-19T13:29:16.840 回答