Open Closed

External Ldap Login issue #2434


User avatar
0
kapil created
  • 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)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    See https://docs.abp.io/en/commercial/latest/modules/account/ldap#customize-built-in-services

  • User Avatar
    0
    kapil created

    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.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Can you remove the space from the username?

    https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.useroptions.allowedusernamecharacters?view=aspnetcore-6.0

  • User Avatar
    0
    kapil created

    hi

    Can you remove the space from the username?

    https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.useroptions.allowedusernamecharacters?view=aspnetcore-6.0

    but in "cn" attribue have space how i can remove.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    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 to AllowedUserNameCharacters

  • User Avatar
    0
    kapil created

    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 to AllowedUserNameCharacters if i removed space from username then following error occured

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    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?

  • User Avatar
    0
    kapil created

    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.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Please share the code that you added.

  • User Avatar
    0
    kapil created
    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;
    }
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Is theexternalUser null?

    If your system username must contain spaces, you can override IUserValidator<TUser> or add space to AllowedUserNameCharacters

  • User Avatar
    0
    kapil created

    Is theexternalUser null?

    If your system username must contain spaces, you can override IUserValidator<TUser> or add space to AllowedUserNameCharacters

    externalUser

  • User Avatar
    0
    kapil created

    AllowedUserNameCharacters

    thanks for the help i use AllowedUserNameCharacters to solve the error. thank you.

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on June 20, 2025, 07:57