【问题标题】:how to work with Custom UserAuthantication in DNN如何在 DNN 中使用自定义用户身份验证
【发布时间】:2012-03-19 10:32:35
【问题描述】:

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

【问题讨论】:

  • 请帮助我坚持这个...

标签: asp.net c#-4.0 dotnetnuke dotnetnuke-6


【解决方案1】:

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

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,我对此并不满意,但希望这对其他人有所帮助。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,看了又长又费劲,最终不得不下载完整的源代码并按照代码在完整的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 2019-11-03
      • 2011-09-01
      相关资源
      最近更新 更多