我创建了一个包含单个超链接的新登录皮肤对象。此skinobject放置在另一个自定义sking对象上。单击此登录超链接时,我打开一个弹出一个div,这个div包含放置在Desktopmodules / Admin / Autanticationservice /中的DNN内置登录控件。现在,当弹出登录模块并单击登录按钮时,这将触及DNN登录模块的login_clicked事件。在这里,我通过调试看到用户通过了身份验证但在最后一行“OnUserAuthenticated(args)”中的此方法内部没有被调用... ??? ???任何想法.. ???
答案 0 :(得分:0)
我也有这个,也没有弄清楚如何解决真正的问题,但你可以通过替换来解决它:
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);
它至少会记录你,但你必须处理自己的重定向。
这是一个黑客,我对它不满意,但希望这有助于其他人。
答案 1 :(得分: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