diff --git a/src/LinqToDB.Identity/LinqToDB.Identity.csproj b/src/LinqToDB.Identity/LinqToDB.Identity.csproj
index eb6779336..3dad96317 100644
--- a/src/LinqToDB.Identity/LinqToDB.Identity.csproj
+++ b/src/LinqToDB.Identity/LinqToDB.Identity.csproj
@@ -14,15 +14,16 @@
linq2db.Identity
aspnetcore;linq2db;identity;membership;LinqToDB
http://www.gravatar.com/avatar/fc2e509b6ed116b9aa29a7988fdb8990?s=320
- https://github.com/ili/LinqToDB.Identity
+ https://github.com/linq2db/LinqToDB.Identity
https://opensource.org/licenses/MIT
git
- git://github.com/ili/LinqToDB.Identity
+ git://github.com/linq2db/LinqToDB.Identity
1.6.1
false
false
false
false
+ 1.2.0
diff --git a/src/LinqToDB.Identity/Properties/AssemblyInfo.cs b/src/LinqToDB.Identity/Properties/AssemblyInfo.cs
index 432823c9b..bed11dd72 100644
--- a/src/LinqToDB.Identity/Properties/AssemblyInfo.cs
+++ b/src/LinqToDB.Identity/Properties/AssemblyInfo.cs
@@ -7,5 +7,5 @@
[assembly: AssemblyMetadata("Serviceable", "True")]
[assembly: NeutralResourcesLanguage("en-us")]
[assembly: AssemblyCompany("blog.linq2db.com")]
-[assembly: AssemblyCopyright("\xA9 2011-2016 blog.linq2db.com")]
+[assembly: AssemblyCopyright("© 2011-2017 blog.linq2db.com")]
[assembly: AssemblyProduct("Linq to DB")]
\ No newline at end of file
diff --git a/src/LinqToDB.Identity/RoleStore.cs b/src/LinqToDB.Identity/RoleStore.cs
index 89cd5373b..e6c47a103 100644
--- a/src/LinqToDB.Identity/RoleStore.cs
+++ b/src/LinqToDB.Identity/RoleStore.cs
@@ -55,18 +55,6 @@ public RoleStore(IConnectionFactory factory, IdentityErrorDescriber describer =
{
}
- ///
- /// Creates a entity representing a role claim.
- ///
- /// The associated role.
- /// The associated claim.
- /// The role claim entity.
- protected override IdentityRoleClaim CreateRoleClaim(TRole role, Claim claim)
- {
- var roleClaim = new IdentityRoleClaim {RoleId = role.Id};
- roleClaim.InitializeFromClaim(claim);
- return roleClaim;
- }
}
///
@@ -75,12 +63,12 @@ protected override IdentityRoleClaim CreateRoleClaim(TRole role, Claim cla
/// The type of the class representing a role.
/// The type of the primary key for a role.
/// The type of the class representing a role claim.
- public abstract class RoleStore :
+ public class RoleStore :
IQueryableRoleStore,
IRoleClaimStore
where TRole : class, IIdentityRole
where TKey : IEquatable
- where TRoleClaim : class, IIdentityRoleClaim
+ where TRoleClaim : class, IIdentityRoleClaim, new()
{
private readonly IConnectionFactory _factory;
@@ -509,6 +497,11 @@ protected void ThrowIfDisposed()
/// The associated role.
/// The associated claim.
/// The role claim entity.
- protected abstract TRoleClaim CreateRoleClaim(TRole role, Claim claim);
+ protected virtual TRoleClaim CreateRoleClaim(TRole role, Claim claim)
+ {
+ var roleClaim = new TRoleClaim(){ RoleId = role.Id };
+ roleClaim.InitializeFromClaim(claim);
+ return roleClaim;
+ }
}
}
\ No newline at end of file
diff --git a/src/LinqToDB.Identity/UserStore.cs b/src/LinqToDB.Identity/UserStore.cs
index 78cd5ec92..8a45705b8 100644
--- a/src/LinqToDB.Identity/UserStore.cs
+++ b/src/LinqToDB.Identity/UserStore.cs
@@ -160,7 +160,7 @@ protected override IdentityUserToken CreateUserToken(TUser user, string lo
/// The type representing a user role.
/// The type representing a user external login.
/// The type representing a user token.
- public abstract class UserStore :
+ public class UserStore :
IUserLoginStore,
IUserRoleStore,
IUserClaimStore,
@@ -174,10 +174,10 @@ public abstract class UserStore
where TUser : class, IIdentityUser
where TRole : class, IIdentityRole
- where TUserClaim : class, IIdentityUserClaim
- where TUserRole : class, IIdentityUserRole
- where TUserLogin : class, IIdentityUserLogin
- where TUserToken : class, IIdentityUserToken
+ where TUserClaim : class, IIdentityUserClaim, new()
+ where TUserRole : class, IIdentityUserRole, new()
+ where TUserLogin : class, IIdentityUserLogin, new()
+ where TUserToken : class, IIdentityUserToken, new ()
where TKey : IEquatable
{
private readonly IConnectionFactory _factory;
@@ -1754,7 +1754,14 @@ public virtual Task GetTwoFactorEnabledAsync(TUser user,
///
///
///
- protected abstract TUserRole CreateUserRole(TUser user, TRole role);
+ protected virtual TUserRole CreateUserRole(TUser user, TRole role)
+ {
+ return new TUserRole()
+ {
+ UserId = user.Id,
+ RoleId = role.Id
+ };
+ }
///
/// Create a new entity representing a user claim.
@@ -1762,7 +1769,12 @@ public virtual Task GetTwoFactorEnabledAsync(TUser user,
///
///
///
- protected abstract TUserClaim CreateUserClaim(TUser user, Claim claim);
+ protected virtual TUserClaim CreateUserClaim(TUser user, Claim claim)
+ {
+ var res = new TUserClaim() {UserId = user.Id};
+ res.InitializeFromClaim(claim);
+ return res;
+ }
///
/// Create a new entity representing a user login.
@@ -1770,7 +1782,16 @@ public virtual Task GetTwoFactorEnabledAsync(TUser user,
///
///
///
- protected abstract TUserLogin CreateUserLogin(TUser user, UserLoginInfo login);
+ protected virtual TUserLogin CreateUserLogin(TUser user, UserLoginInfo login)
+ {
+ return new TUserLogin()
+ {
+ UserId = user.Id,
+ LoginProvider = login.LoginProvider,
+ ProviderDisplayName = login.ProviderDisplayName,
+ ProviderKey = login.ProviderKey
+ };
+ }
///
/// Create a new entity representing a user token.
@@ -1780,7 +1801,16 @@ public virtual Task GetTwoFactorEnabledAsync(TUser user,
///
///
///
- protected abstract TUserToken CreateUserToken(TUser user, string loginProvider, string name, string value);
+ protected virtual TUserToken CreateUserToken(TUser user, string loginProvider, string name, string value)
+ {
+ return new TUserToken()
+ {
+ UserId = user.Id,
+ LoginProvider = loginProvider,
+ Name = name,
+ Value = value
+ };
+ }
///
/// Converts the provided to a strongly typed key object.
diff --git a/test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test/ProvideConfigutayionTest.cs b/test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test/ProvideConfigutayionTest.cs
index 4970b60cd..21dd328d3 100644
--- a/test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test/ProvideConfigutayionTest.cs
+++ b/test/Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test/ProvideConfigutayionTest.cs
@@ -14,6 +14,11 @@ public void AddLinqToDBStores0()
services
.AddIdentity()
.AddLinqToDBStores(new DefaultConnectionFactory());
+
+ var sp = services.BuildServiceProvider();
+
+ Assert.NotNull(sp.GetService>());
+ Assert.NotNull(sp.GetService>());
}
[Fact]
@@ -23,6 +28,11 @@ public void AddLinqToDBStores1()
services
.AddIdentity, IdentityRole>()
.AddLinqToDBStores(new DefaultConnectionFactory());
+
+ var sp = services.BuildServiceProvider();
+
+ Assert.NotNull(sp.GetService>>());
+ Assert.NotNull(sp.GetService>>());
}
[Fact]
@@ -38,6 +48,11 @@ public void AddLinqToDBStores6()
IdentityUserLogin,
IdentityUserToken,
IdentityRoleClaim>(new DefaultConnectionFactory());
+
+ var sp = services.BuildServiceProvider();
+
+ Assert.NotNull(sp.GetService>>());
+ Assert.NotNull(sp.GetService>>());
}
}