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