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.

Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11