You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DNN自定义认证提供者:如何将login.ascx控件与社交提供者并排渲染

解决DNN自定义认证提供者与社交提供者并排显示的问题

我懂你想把自己的login.ascx控件和社交认证提供者放在一块展示,而不是点进去单独显示的需求。这事儿可以通过修改DNN登录模块的模板或者调整认证扩展逻辑来实现,下面给你具体的操作方案:

方法一:直接修改登录模块的ASCX模板

  1. 先找到DNN默认社交登录模块的模板文件,一般路径是~/DesktopModules/Authentication/SocialLogin/Views/Login.ascx,如果是你自定义的登录模块,就找对应路径下的模板文件。
  2. 打开这个ASCX文件,定位到社交认证按钮的渲染区域(通常是用Repeater循环或者foreach输出按钮的代码块)。
  3. 在这个区域里插入你的自定义控件,先注册再引用:
    <%@ Register TagPrefix="customAuth" TagName="CustomLogin" Src="~/Your/Control/Path/login.ascx" %>
    <customAuth:CustomLogin runat="server" ID="MyCustomLoginControl" />
    
    记得把Src里的路径换成你实际的控件路径。
  4. 最后加CSS调整布局,让自定义控件和社交按钮能并排或相邻显示,比如给容器加弹性布局:
    .auth-providers-wrap {
        display: flex;
        gap: 12px;
        align-items: center;
        flex-wrap: wrap;
    }
    

方法二:让自定义认证提供者纳入DNN统一渲染逻辑

如果想让你的自定义认证和社交提供者一样被DNN系统统一管理展示,可以这么做:

  1. 修改你的认证提供者类,确保实现IAuthenticationControl接口,让DNN能识别它为可直接渲染的认证选项。
  2. 在类里重写LoginControlPath属性,返回你的login.ascx路径:
    public override string LoginControlPath
    {
        get { return "~/Your/Control/Path/login.ascx"; }
    }
    
  3. 去DNN的站点设置里,把你的自定义认证提供者和社交提供者都启用,还能调整它们的显示顺序,这样登录模块就会自动把它们渲染在一块了。

小提醒

  • 修改前记得备份原文件,免得改崩了没法回滚。
  • 如果你的login.ascx有自己的登录逻辑,要确保和DNN的认证流程兼容,比如登录成功后触发DNN的UserAuthenticated事件。
  • 多在不同浏览器和设备上测试下显示效果,保证样式兼容。

内容的提问来源于stack exchange,提问作者Luis Abreu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:00:22