无法使用 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。
我正在尝试使用 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。