【问题标题】:How to reset admin or any user password in Umbraco?如何在 Umbraco 中重置管理员或任何用户密码?
【发布时间】:2020-12-16 18:02:25
【问题描述】:

无法在 umbraco 8 中重置密码。 我已经在 umbraco 论坛和堆栈溢出中搜索了所有解决方案。 在https://our.umbraco.com/forum/extending-umbraco-and-using-the-api/91117-how-does-umbraco-hash-member-passwords-and-for-a-bonus-can-i-create-a-member-using-a-hashed-password 中尝试解决方案,但没有。

【问题讨论】:

  • 这是给管理员的吗?您不能使用忘记密码选项吗?

标签: passwords umbraco umbraco7 reset-password umbraco8


【解决方案1】:

如下创建一个类并运行项目:

using System.Web.Security;
using Umbraco.Core.Composing;
using Umbraco.Core;
using Umbraco.Core.Services;
using Umbraco.Web.Security.Providers;

namespace Project
{
    [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()
        {
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2011-09-15
    • 1970-01-01
    • 2013-08-26
    • 2012-09-29
    • 2019-09-27
    • 2019-08-03
    相关资源
    最近更新 更多