zoukankan      html  css  js  c++  java
  • 忘记DotNetNuke的host密码?如何恢复丢失的DNN密码

    忘记host密码? 有时候我们会忘记DotNetNuke的host密码,这是一件很头疼的事,这时我们可以通过下面这一段SQL Script把host密码重置为一个已知用户的密码(假设这个已知用户名为m2land)。

    原理其实很简单,这段Script会把aspnet_membership表中的"m2land"用户的password和password_salt值拷贝并覆盖host对应的值。
    使用方法请参考script中的说明。


    /*
     -- Database Utility ---------------------------------------------------------------------------
     Description : Reset a Password in a DotNetNuke database
     Author : Tony Tullemans
     Date Created : 18.04.2007
     Note/s : Before you run this script you must know the UserName and Password of another
     registered DNN user in the database you wish to affect.
     -----------------------------------------------------------------------------------------------
     
    */
     
    DECLARE @databaseName VARCHAR(128)
    SELECT @databaseName = DB_NAME()
     
    PRINT 'RESET PASSWORD IN DATABASE : ' + @databaseName
    PRINT '-----------------------------' + REPLICATE('-'DATALENGTH(@databaseName ));
     
    DECLARE @knownUserName NVARCHAR(128)
    DECLARE @lostUserName NVARCHAR(128)
    DECLARE @lostUserId NVARCHAR(128)
    DECLARE @knownPassword NVARCHAR(128)
    DECLARE @knownSalt NVARCHAR(128)
     
    SET @knownUserName = 'm2land'
    SET @lostUserName = 'host'
     
    SELECT @knownPassword = Password, @knownSalt = PasswordSalt
    FROM aspnet_Membership
    INNER JOIN aspnet_users
    ON aspnet_Membership.UserId = aspnet_users.UserId
    where UserName = @knownUserName;
     
    PRINT ''
    PRINT 'Known Password for "' + @knownUserName + '" is : ' + @knownPassword
    PRINT 'Known Password Salt for "' + @knownUserName + '" is : ' + @knownSalt
     
    SELECT @lostUserId = aspnet_Membership.UserId
    FROM aspnet_Membership
    INNER JOIN aspnet_users
    ON aspnet_Membership.UserId = aspnet_users.UserId
    WHERE UserName = @lostUserName;
     
    PRINT ''
    PRINT 'UserID for "' + @lostUserName + '" is : ' + @lostUserId
    PRINT ''
     
    IF (DATALENGTH(@lostUserName<= 0 OR @lostUserName IS NULL)
    PRINT 'Invalid Lost User Name ' + @lostUserName
    ELSE BEGIN
    IF (DATALENGTH(@knownUserName<= 0 OR @knownUserName IS NULL)
    PRINT 'Invalid Lost User Name ' + @lostUserName
    ELSE BEGIN
    IF (DATALENGTH(@knownPassword<= 0 OR @knownPassword IS NULL)
    PRINT 'Invalid Known Password ' + @knownPassword
    ELSE BEGIN
    IF (DATALENGTH(@knownSalt<= 0 OR @knownSalt IS NULL)
    PRINT 'Invalid Known Salt ' + @knownSalt
    ELSE BEGIN
    PRINT ''
    PRINT 'BEFORE'
    SELECT left(UserName, 12as UserName, aspnet_Membership.UserId, left(Email, 20as Email, Password, PasswordSalt
    FROM aspnet_Membership INNER JOIN aspnet_users ON aspnet_Membership.UserId = aspnet_users.UserId
    WHERE UserName IN ( @knownUserName@lostUserName );
    PRINT ''
    PRINT 'Changing Password for User Id : "' + @lostUserId + '" to "' + @knownPassword + '"'
    PRINT ''
    UPDATE aspnet_Membership
    SET Password = @knownPassword,
    PasswordSalt 
    = @knownSalt
    -- SELECT UserId, Password, PasswordSalt
    --
     FROM aspnet_Membership
    WHERE UserId = @lostUserId;
    PRINT ''
    PRINT 'AFTER'
    SELECT left(UserName, 12as UserName, aspnet_Membership.UserId, left(Email, 20as Email, Password, PasswordSalt
    FROM aspnet_Membership INNER JOIN aspnet_users ON aspnet_Membership.UserId = aspnet_users.UserId
    WHERE UserName IN ( @knownUserName@lostUserName );
    END
    END
    END
    END
    GO

    PRINT ''
    PRINT ' * * * END OF SCRIPT * * *'
    PRINT ''
    GO

    附:还有一个版本的Script,这个版本是直接调用Asp.net的存储过程来修改密码,在我看来更方便,但不知为什么不起作用,望赐教!

    SQL Script recovering host password use asp.net store procedure

    另一个方法:

    As there are frequent requests from users, who lost the password of the host account (and you cannot request the host password by email), the following solution will help for all DNN 3 and 4 installation. Please note, that your need direct access to the database to suceed with the issue:

    • if "register" is not displayed for the portal, go to table "Portals"  in your database and enter value "2" into column "Registration".
    • create a new user account by registration (this time, please remember the password you enter!)
    • go to database, enter table "ASPNet_Membership"
    • go to new user account (usually the last one) and copy the encrypted values of columns "Password" and "PasswordSalt" into the same columns of user account "host" (usually th first entry in this table) 
    • login as user "host" using the new password and delete the reshly created other user.
    • Keep remembering your password ;)
    来自:http://www.deutschnetnuke.de/tabid/183/Default.aspx


  • 相关阅读:
    Layui 两个table 人员选择 多选
    iphone7 忘记密码 重装系统
    使用hql-统计连续登陆的三天及以上的用户
    azkaban群起/群停脚本
    Hive读取索引文件问题:select * 和select count(*)读取出来的行数不一致
    scala/java等其他语言从CSV文件中读取数据,使用逗号','分割可能会出现的问题
    hadoop3.1.3版本的secondaryNamenode的web界面不能显示的问题?
    启动kafka消费报错:WARN [Consumer clientId…] 1 partitions have leader brokers without a matching listener,…
    centos6和centos7的防火墙命令,以及它们的区别是是什么?
    kafka项目经验之如何进行Kafka压力测试、如何计算Kafka分区数、如何确定Kaftka集群机器数量
  • 原文地址:https://www.cnblogs.com/DotNetNuke/p/979233.html
Copyright © 2011-2022 走看看