diff --git a/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserLoginConsts.cs b/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserLoginConsts.cs
index 4bd670024f..0ef43bb1b1 100644
--- a/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserLoginConsts.cs
+++ b/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserLoginConsts.cs
@@ -3,7 +3,7 @@
public static class IdentityUserLoginConsts
{
public const int MaxLoginProviderLength = 64;
- public const int MaxProviderKeyLength = 256;
+ public const int MaxProviderKeyLength = 196;
public const int MaxProviderDisplayNameLength = 128;
}
}
diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs
index fd61f5c809..256ee9be9f 100644
--- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs
+++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs
@@ -211,12 +211,11 @@ namespace Volo.Abp.Identity
Claims.RemoveAll(c => c.ClaimValue == claim.Value && c.ClaimType == claim.Type);
}
- public void AddLogin([NotNull] IGuidGenerator guidGenerator, [NotNull] UserLoginInfo login)
+ public void AddLogin([NotNull] UserLoginInfo login)
{
- Check.NotNull(guidGenerator, nameof(guidGenerator));
Check.NotNull(login, nameof(login));
- Logins.Add(new IdentityUserLogin(guidGenerator.Create(), Id, login));
+ Logins.Add(new IdentityUserLogin(Id, login));
}
public void RemoveLogin([NotNull] string loginProvider, [NotNull] string providerKey)
diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLogin.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLogin.cs
index 8556fee9d7..609a3b101a 100644
--- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLogin.cs
+++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLogin.cs
@@ -8,7 +8,7 @@ namespace Volo.Abp.Identity
///
/// Represents a login and its associated provider for a user.
///
- public class IdentityUserLogin : Entity
+ public class IdentityUserLogin : Entity
{
///
/// Gets or sets the of the primary key of the user associated with this login.
@@ -35,20 +35,19 @@ namespace Volo.Abp.Identity
}
- protected internal IdentityUserLogin(Guid id, Guid userId, [NotNull] string loginProvider, [NotNull] string providerKey, string providerDisplayName)
+ protected internal IdentityUserLogin(Guid userId, [NotNull] string loginProvider, [NotNull] string providerKey, string providerDisplayName)
{
Check.NotNull(loginProvider, nameof(loginProvider));
Check.NotNull(providerKey, nameof(providerKey));
- Id = id;
UserId = userId;
LoginProvider = loginProvider;
ProviderKey = providerKey;
ProviderDisplayName = providerDisplayName;
}
- public IdentityUserLogin(Guid id, Guid userId, [NotNull] UserLoginInfo login)
- : this(id, userId, login.LoginProvider, login.ProviderKey, login.ProviderDisplayName)
+ protected internal IdentityUserLogin(Guid userId, [NotNull] UserLoginInfo login)
+ : this(userId, login.LoginProvider, login.ProviderKey, login.ProviderDisplayName)
{
}
diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs
index bb3d9c86c5..c56f33eddf 100644
--- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs
+++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs
@@ -504,7 +504,7 @@ namespace Volo.Abp.Identity
await _userRepository.EnsureCollectionLoadedAsync(user, u => u.Logins, cancellationToken);
- user.AddLogin(_guidGenerator, login);
+ user.AddLogin(login);
}
///
diff --git a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs
index 736ddcc214..affb8c75f7 100644
--- a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs
+++ b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs
@@ -88,11 +88,12 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
b.ToTable(tablePrefix + "UserLogins", schema);
+ b.HasKey(x => new {x.UserId, x.LoginProvider});
+
b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserLoginConsts.MaxLoginProviderLength).IsRequired();
b.Property(ul => ul.ProviderKey).HasMaxLength(IdentityUserLoginConsts.MaxProviderKeyLength).IsRequired();
b.Property(ul => ul.ProviderDisplayName).HasMaxLength(IdentityUserLoginConsts.MaxProviderDisplayNameLength);
- b.HasIndex(l => new { l.UserId, l.LoginProvider, l.ProviderKey });
b.HasIndex(l => new { l.LoginProvider, l.ProviderKey });
});