- ABP Framework version: v4.4.4
- UI type: MVC
- DB provider: EF Core
- Tiered (MVC) or Identity Server Separated (Angular): no
- Exception message and stack trace: Ldap Login
- Steps to reproduce the issue:"login with ldap
I am using ExternalLdapLogin and used "cn" attribute instead of "uid" when i am trying to login with ldap through following error
13 Answer(s)
-
0
hi
See https://docs.abp.io/en/commercial/latest/modules/account/ldap#customize-built-in-services
-
0
hi
See https://docs.abp.io/en/commercial/latest/modules/account/ldap#customize-built-in-services
yes, i do same but this error is thrown.
i dont have "uid" attribute becaue is null i am using "cn" attribue which give this error.
-
0
-
0
-
0
but in "cn" attribue have space how i can remove.
Can you share more details?
If your system username must contain spaces, you can override
IUserValidator<TUser>
or add space toAllowedUserNameCharacters
-
0
-
0
but in "cn" attribue have space how i can remove.
Can you share more details?
if i removed space from username then following error occured
Did you add any custom code?
-
0
but in "cn" attribue have space how i can remove.
Can you share more details?
if i removed space from username then following error occured
Did you add any custom code?
which type of details you need?
Yes,i added the code for CreateUserAsync.
-
0
Please share the code that you added.
-
0
public override async Task<Volo.Abp.Identity.IdentityUser> CreateUserAsync(string userName, string providerName) { await IdentityOptions.SetAsync(); var externalUser = await GetUserInfoAsync(userName); NormalizeExternalLoginUserInfo(externalUser, userName); var user = new Volo.Abp.Identity.IdentityUser( GuidGenerator.Create(), userName, externalUser.Email, tenantId: CurrentTenant.Id ); user.Name = externalUser.Name; user.Surname = externalUser.Surname; user.IsExternal = true; user.SetEmailConfirmed(externalUser.EmailConfirmed ?? false); user.SetPhoneNumber(externalUser.PhoneNumber, externalUser.PhoneNumberConfirmed ?? false); (await UserManager.CreateAsync(user)).CheckErrors(); if (externalUser.TwoFactorEnabled != null) { (await UserManager.SetTwoFactorEnabledAsync(user, externalUser.TwoFactorEnabled.Value)).CheckErrors(); } (await UserManager.AddDefaultRolesAsync(user)).CheckErrors(); (await UserManager.AddLoginAsync( user, new UserLoginInfo( providerName, externalUser.ProviderKey, providerName ) ) ).CheckErrors(); return user; }
-
0
Is the
externalUser
null?If your system username must contain spaces, you can override IUserValidator<TUser> or add space to AllowedUserNameCharacters
-
0
-
0
AllowedUserNameCharacters
thanks for the help i use AllowedUserNameCharacters to solve the error. thank you.