DNN 9.2用户管理模块异常及非管理员权限配置求助
解决DNN 9.2中普通用户自助编辑信息的问题
嘿,我刚好处理过DNN升级后类似的模块兼容问题,给你一步步梳理解决方案:
一、先搞定「Users and Roles」模块的异常
你遇到的ModuleLoadException提示找不到UserSettings.ascx,十有八九是升级时核心模块的文件没部署全。修复方法很直接:
- 去DNN官方下载对应9.2版本的完整安装包,解压后找到
/DesktopModules/Admin/Security/目录下的UserSettings.ascx、UserSettings.ascx.cs这些相关文件,手动上传到你的服务器对应路径。 - 如果上传后还是报错,就进后台
Host > Extensions,找到「Users and Roles」模块,点击「Reinstall」让系统自动修复依赖和缺失文件。
不过提前说一句:这个模块本来就是给管理员用的后台工具,就算修复好,放到前端页面也不会正常显示(它的UI逻辑是绑定admin菜单的弹窗),所以咱们重点还是放在给普通用户做自助编辑的途径上。
二、给普通用户开放无需管理员权限的编辑入口
1. 用DNN自带的「Profile」模块(首选)
DNN原生的「Profile」模块就是专门给普通用户编辑自己信息的,完全不需要管理员权限:
- 新建一个前端页面(比如叫「个人中心」),进入编辑模式后添加「Profile」模块。
- 检查模块权限:在模块的「Settings」里找到「Permissions」,确保「Authenticated Users」拥有「View」和「Edit」权限(默认一般是开着的,但最好确认下)。
- 用户登录后,就能在这个页面编辑自己的姓名、邮箱、联系方式这些个人资料,全程不需要管理员插手。
2. 找兼容的第三方替代模块(如果需要更多功能)
如果原来的第三方模块失效了,可以去DNN的扩展商店找兼容9.2的:
- 进后台
Host > Extensions,打开「Extension Store」,搜索「User Profile」或者「User Management」,挑标注支持DNN 9.x的模块,很多免费的都挺好用(比如DNN User Profile Enhanced,选官方认证的就行,避免踩坑)。 - 安装后跟着模块说明配置权限,给普通用户开放编辑自身信息的权限就搞定了。
3. 自定义简易页面(适合极简需求)
如果只是需要用户改个密码或者基本信息,也可以自己搞个简单页面:
- 新建页面后添加「HTML」模块,嵌入DNN自带的用户编辑控件
~/Controls/User/EditUser.ascx,不过这个需要点DNN开发基础,一定要做好权限控制,确保用户只能编辑自己的信息,别开放全局权限。 - 或者用DNN的API写个极简自定义模块,调用
UserController类处理信息更新,核心就是加个判断:只有当前登录用户能修改自己的资料。
总结一下
- 「Users and Roles」模块就别放前端了,它是管理员后台工具,先修复好留着后台用就行。
- 优先用自带的「Profile」模块,简单高效,完全满足普通用户自助编辑的需求。
- 要更多功能就去扩展商店找兼容模块,或者自己搞个简易自定义模块。
内容的提问来源于stack exchange,提问作者Don Stuber
相关产品推荐
相关产品推荐

