【问题标题】:Umbraco - reset admin passwordUmbraco - 重置管理员密码
【发布时间】:2015-11-16 18:53:14
【问题描述】:

有可能吗?我在玩 Umbraco,上周启动了它(刚刚启动并运行,除此之外没有做任何事情),到周一我忘记了密码。我看了here,但这些建议似乎都不起作用。在此处将成员资格提供程序更改为 Clear

    <add name="UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="8" useLegacyEncoding="true" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed" />
    <add name="UsersMembershipProvider" type="Umbraco.Web.Security.Providers.UsersMembershipProvider, Umbraco" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="8" useLegacyEncoding="true" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />

如果我将UmbracoMembershipProvider 更改为Clear,它似乎没有任何作用。如果我将UserMembershipProvider 更改为Clear,则整个站点都会中断(它抱怨说,如果将Umbraco 设置为Hashed,则只能使用带有ASP.NET 身份的Umbraco)。

替换userPassword 的所有建议哈希似乎都不起作用。将 userPassword 设置为空字符串不起作用,因为 UI 不允许空字符串作为密码,并且后端也会检查并抱怨。

有没有什么简单、万无一失的方法来重置该死的东西而无需卸载和重新开始?

【问题讨论】:

  • 您是否可以使用用户名而不是电子邮件帐户登录?
  • 我认为“清除”hack 仅适用于旧版本的 Umbraco(可能是 Umbraco 7.2 及之前版本)。

标签: umbraco7


【解决方案1】:

我们在收到来自第 3 方的 Umbraco 安装但没有凭据时遇到了这个问题。 这适用于 Umbraco 7.6.1

• 修改UsersMembershipProvider 设置useLegacyEncoding="true" 在web.config 然后重启iis

  • 使用常用脚本以旧方式设置管理员密码

    UPDATE umbracoUser set userdisabled=0, userNoConsole=0, userLogin='admin', failedLoginAttempts=0, userPassword='bnWxWyFdCueCcKrqniYK9iAS+7E=' where id=0

• 以管理员/默认身份登录

• 导航到管理员用户

• 修改UsersMembershipProvider 设置useLegacyEncoding="false" 然后再次重启iis

• CTRL-F5 重新加载 web.config(您仍应通过 cookie 登录)

• 选择“更改密码”

• 选中“重置密码”复选框

• 点击保存

• 您将看到一个带有新密码的绿色对话框

• 将新密码复制到剪贴板

• 再次点击“更改密码”

• 粘贴到“当前密码”字段中

• 输入 admin123456 作为新密码

• 输入 admin123456 作为确认密码

• 点击保存

要检查重启 iis,请以 admin/admin123456 身份登录

【讨论】:

    【解决方案2】:
    UPDATE umbracoUser set userdisabled=0, userLogin='admin', userPassword='bnWxWyFdCueCcKrqniYK9iAS+7E=' where id=0
    

    哈希是没有引号的“默认”

    【讨论】:

    • 你应该添加一些解释来提高你的回答质量。
    【解决方案3】:

    对于 Umbraco 7-8,创建如下类:

    using System.Web.Security;
    using Umbraco.Core.Composing;
    using Umbraco.Core;
    using Umbraco.Core.Services;
    using Umbraco.Web.Security.Providers;
    
    namespace Test
    {
        [RuntimeLevel(MinLevel = RuntimeLevel.Run)]
        public class StartingComposer : IUserComposer
        {
            public void Compose(Composition composition)
            {
                composition.Components().Append<StartingEvent>();
            }
        }
        public class StartingEvent : IComponent
        {
            private readonly IUserService _userService; 
            public StartingEvent(IUserService userService)
            {
                _userService = userService;
                var adminUser = _userService.GetUserById(-1);
                adminUser.Username = adminUser.Email = "admin@gmail.com";
                adminUser.FailedPasswordAttempts = 0;
                adminUser.IsLockedOut = false;
                adminUser.IsApproved = true;
                adminUser.RawPasswordValue = (Membership.Providers["UsersMembershipProvider"] as UsersMembershipProvider)?.HashPasswordForStorage("Admin123*");
                userService.Save(adminUser);
            }
            public void Initialize()
            {
            }
            public void Terminate()
            {
            }
        }
    }
    

    【讨论】:

    • 这是唯一对我有用的东西,尽管我为此创建了一个 Umbraco 事件处理程序。
    【解决方案4】:

    您可以访问它指向的数据库吗?如果这样做,您可以通过这种方式重置密码。

    UPDATE umbracoUser set userdisabled=0, userLogin='admin', userPassword='rboj46J1NSyvbZ5c7UI/5+m+Pcc=' where id=0
    

    UPDATE umbracoUser set userdisabled=0, userLogin='admin', userPassword='default' where id=0
    

    用户为admin,密码更新为default

    【讨论】:

    • 尝试了第一个,但它对我不起作用。只有当我可以切换到 clear 而不是散列密码时,第二个才有效,但在 web.config 中更改它似乎不起作用。
    • 尝试使用userPassword='',然后尝试登录,它应该会提示重置。或者尝试转到您的 SQL gui 并单击该框并尝试以这种方式更新它。
    • 您无法使用空白密码登录。前端会像后端一样检查它。空白密码被拒绝。
    • 你确定吗?我已经阅读了多种解决方案并在 Umbraco 5 上进行了测试(我知道已经过时)。无论如何,我会尝试,如果没有看起来像重新安装将是你最好的选择。
    • 或者您可以尝试创建一个具有权限的新用户并触发管理员重置。
    【解决方案5】:

    前几天我也遇到了同样的问题。 bnWxWyFdCueCcKrqniYK9iAS+7E= 应该是 default 的正确哈希值。

    将此插入数据库,重新启动应用程序(您可以下载,然后在根目录上传 web.config),现在使用您的用户名和default 作为密码登录。

    登录后,您可以更改密码,一切都应该没问题。 :)

    希望对你有帮助!

    【讨论】:

      【解决方案6】:

      对于无法使用上述步骤解决此问题的每个人,您可以从另一个 Umbraco.sdf 数据库文件中复制密码并将其粘贴到新站点 Umbraco.sdf 文件中的当前密码上。然后使用该密码登录。您可能需要清除缓存并重新加载网站。

      【讨论】:

        【解决方案7】:

        有时您还需要更新列 lastLockoutDate 才能使数据库中的手动更新生效。

        尝试以下查询将 admin 用户的密码更新为 default

        UPDATE [dbo].umbracoUser set userdisabled=0, userLogin='admin', userPassword='bnWxWyFdCueCcKrqniYK9iAS+7E=', lastLockoutDate = null where id=0;
        

        【讨论】:

          【解决方案8】:

          适用于 Umbraco 8 或更高版本或任何其他版本。

          在 Visual Studio 中创建一个新项目,安装您想要的 umbraco 版本(与您的原始项目相同)(使用 nuget)。

          对所需的数据库类型和版本(与丢失帐户的数据库相同)进行设置。这次,写下您要使用的凭据。

          在基本安装后,转到表 [DATABASENAME].[dbo].[umbracoUser] 并使用新数据库的信息创建您帐户的更新查询。

          UPDATE umbracoUser 
          set userdisabled=0, 
              userNoConsole=0, 
              userEmail='admin@admin.com', 
              userLogin='admin@admin.com',
              failedLoginAttempts=0,  
              userPassword='[COPY HASHED PASSWORD]',
              securityStampToken = '[COPY securityStampToken]'   
          where id=-1 -- for version 8.* it is -1
          

          现在您无需停止、重置或更改原始项目即可登录您的项目

          【讨论】:

            【解决方案9】:

            对于 Umbraco 8,我按照上面 Bunkerbuster 的回答,但仍然遇到问题。

            我发现我必须在临时/虚拟站点的 Web.config 和忘记密码站点的 Web.config 之间同步 machineKey 设置。

            配置块如下所示:

             <machineKey validationKey="xxx"
                         decryptionKey="xxx"
                         validation="HMACSHA256"
                         decryption="AES" />
            

            【讨论】:

              猜你喜欢
              • 2014-11-04
              • 2014-09-28
              • 2012-06-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-15
              相关资源
              最近更新 更多