如何简化在DotNetNuke 5.6.3中注册时生成的用户密码
在DotNetNuke 5.6.3网站中注册为新用户时,用户输入的密码将被忽略(无论多么复杂-它肯定满足系统要求),并创建一个安全但丑陋的密码 两个相关问题:如何简化在DotNetNuke 5.6.3中注册时生成的用户密码,dotnetnuke,Dotnetnuke,在DotNetNuke 5.6.3网站中注册为新用户时,用户输入的密码将被忽略(无论多么复杂-它肯定满足系统要求),并创建一个安全但丑陋的密码 两个相关问题: 用户想要的密码被忽略并被自动生成的密码替换的原因可能是什么 有没有办法告诉DotNetNuke创建一个不太安全(因此也不那么难看)的密码,可能只是字母,省略特殊字符(这是客户的要求,所以请不要在网上讨论安全;-) web.config中的AspNetSqlMembershipProvider设置如下: <add name="AspN
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SiteSqlServer"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="0"
requiresUniqueEmail="false"
passwordFormat="Encrypted"
applicationName="DotNetNuke" />
我也遇到了同样的问题,也经历了同样的困难 我最终修改了DotNetNuke的默认成员资格提供程序。 1) 下载DNN 5.6.3源代码 2) 打开主解决方案,导航到
/library/providers/membershipproviders/ASPNetMembershipProvider/AMPNetMembershipProvider.vb
第826行
3) 编辑函数Public重载将函数GeneratePassword(ByVal长度为整数)重写为字符串
4) 将其内容替换为:返回Guid.NewGuid().ToString().Substring(0,7)
或任何您希望使用的密码生成代码
5) 编撰
6) 将生成的DLL复制到已部署的DNN安装
注释
- 我使用NewGUID()是因为它混合了字母和数字,我的用户是这样的,任何标点符号都会抛出它们
- 我把我的DNN源挂到subversion上了。如果修改核心,我建议这样做
- 我还建议在修改之前和之后插入
和“开始OLAF修改
,以便在几个月后,当您移动到DNN 6时,可以通过在DNN 5.6.3源中搜索结束OLAF修改
在DNN 6源中进行相同的修改OLAF修改
- 修改DNN源是最后的解决方案,但我认为在这种情况下是必需的
/library/providers/membershipproviders/ASPNetMembershipProvider/AMPNetMembershipProvider.vb
第826行
3) 编辑函数Public重载将函数GeneratePassword(ByVal长度为整数)重写为字符串
4) 将其内容替换为:返回Guid.NewGuid().ToString().Substring(0,7)
或任何您希望使用的密码生成代码
5) 编撰
6) 将生成的DLL复制到已部署的DNN安装
注释
- 我使用NewGUID()是因为它混合了字母和数字,我的用户是这样的,任何标点符号都会抛出它们
- 我把我的DNN源挂到subversion上了。如果修改核心,我建议这样做
- 我还建议在修改之前和之后插入
和“开始OLAF修改
,以便在几个月后,当您移动到DNN 6时,可以通过在DNN 5.6.3源中搜索结束OLAF修改
在DNN 6源中进行相同的修改OLAF修改
- 修改DNN源是最后的解决方案,但我认为在这种情况下是必需的
我问题的第二部分已经由哈姆林11回答了。我找到了第1部分的解决方案(以防万一有人感兴趣):
DesktopModules\Admin\Security\User.ascx中有一个名为“chkRandom”的隐藏复选框,在我的安装中设置为True,但同时不可见(不知道是什么影响了它-奇怪的设置,用户永远不知道为什么她的密码会被随机密码替换)。将此设置为false可以解决问题。我问题的第2部分已由hamlin11回答。我找到了第1部分的解决方案(以防万一有人感兴趣):
DesktopModules\Admin\Security\User.ascx中有一个名为“chkRandom”的隐藏复选框,在我的安装中设置为True,但同时不可见(不知道是什么影响了它-奇怪的设置,用户永远不知道为什么她的密码会被随机密码替换)。将此设置为false可以解决问题。非常感谢您的解决方案(很高兴知道我不是唯一的一个)!它起作用了(或者将分别起作用)!非常感谢您的解决方案(很高兴知道我不是唯一一个)!它起作用了(或者将分别起作用)!只有管理员创建用户帐户时,才能设置随机密码。当用户为自己注册时,使用随机密码毫无意义,因此是隐藏的。神秘之处在于盒子是如何被选中的。我安装了5.6.3,没有这个问题,我对5.6.3代码的检查只显示了一行设置了选中值,它总是将其设置为false,只有UI可以实际选中复选框。谢谢,这很有意义。我不知道为什么,但是在aspx文件中,随机密码复选框被设置为Checked=“True”。我将尝试找出是谁做的(如果是我们团队中的某个人),或者在安装时是否已将其设置为True。仔细查看,.ascx文件中默认选中该复选框。现在我不明白为什么我在5.6.3的干净安装上没有遇到同样的问题。设置随机密码的功能只有在管理员创建用户帐户时才可用。当用户为自己注册时,使用随机密码毫无意义,因此是隐藏的。神秘之处在于盒子是如何被选中的。我安装