无法使用 BackOfficeUserPasswordChecker 以外部用户登录 Umbraco

Can not use BackOfficeUserPasswordChecker to login Umbraco with external user

我正在尝试使用 BackOfficeUserPasswordChecker 为 Umbraco(与外部用户)进行身份验证。

我自定义了 OwinStartup:

    public class UmbracoCustomOwinStartup
    {
        public void Configuration(IAppBuilder app)
        {
            var applicationContext = ApplicationContext.Current;
            app.ConfigureUserManagerForUmbracoBackOffice<BackOfficeUserManager, BackOfficeIdentityUser>(
                applicationContext,
                (options, context) =>
                {
                    var membershipProvider = Umbraco.Core.Security.MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                    var settingContent = Umbraco.Core.Configuration.UmbracoConfig.For.UmbracoSettings().Content;
                    var userManager = BackOfficeUserManager.Create(options,
                        applicationContext.Services.UserService,
                        applicationContext.Services.EntityService,
                        applicationContext.Services.ExternalLoginService,
                        membershipProvider,
                        settingContent);

                    // Set your own custom IBackOfficeUserPasswordChecker   
                    userManager.BackOfficeUserPasswordChecker = new CustomPasswordChecker();
                    return userManager;
                });
       }
  }

而且我还定义了 CustomPasswordChecker,它总是 return CheckPasswordAsync 方法中的 ValidCredentials:

public Task<BackOfficeUserPasswordCheckerResult> CheckPasswordAsync(BackOfficeIdentityUser user, string password)
    {
        return Task.FromResult(BackOfficeUserPasswordCheckerResult.ValidCredentials);
    }

当我输入 Umbraco 数据库中没有的用户名时,Umbraco 登录仍然抛出消息 "login failed fo user..."。我调试了,它正确地跳转到 CustomPasswordChecker.CheckPasswordAsync() ,但是消息仍然抛出,我无法成功登录。

我是不是漏掉了什么?以及如何让 Umbraco 接受外部用户(AD 用户/在其他数据库中定义的用户,...)?

你的Umbraco里面有这个用户吗?如果您尝试使用 Umbraco 中没有的用户登录 Umbraco,那么它将回退到默认身份验证。

您可以尝试先将用户添加到您的umbraco。