diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs
new file mode 100644
index 0000000000..1fb13047fd
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs
@@ -0,0 +1,26 @@
+using System;
+
+namespace Volo.Abp.Identity
+{
+ [Serializable]
+ public class IdentityClaimTypeEto
+ {
+ public Guid Id { get; set; }
+
+ public Guid? TenantId { get; set; }
+
+ public virtual string Name { get; set; }
+
+ public virtual bool Required { get; set; }
+
+ public virtual bool IsStatic { get; set; }
+
+ public virtual string Regex { get; set; }
+
+ public virtual string RegexDescription { get; set; }
+
+ public virtual string Description { get; set; }
+
+ public virtual IdentityClaimValueType ValueType { get; set; }
+ }
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs
new file mode 100644
index 0000000000..3effffce6b
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace Volo.Abp.Identity
+{
+ public class IdentityRoleEto
+ {
+ public Guid Id { get; set; }
+
+ public Guid? TenantId { get; set; }
+
+ public virtual string Name { get; protected internal set; }
+
+ public virtual string NormalizedName { get; protected internal set; }
+
+ public virtual bool IsDefault { get; set; }
+
+ public virtual bool IsStatic { get; set; }
+
+ public virtual bool IsPublic { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
index f6eb1df909..fe364e92fb 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
@@ -25,6 +25,7 @@
+
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
index 1bb065017e..4bcd2ee234 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
@@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
+using Volo.Abp.AutoMapper;
using Volo.Abp.Domain;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Modularity;
@@ -21,6 +22,13 @@ namespace Volo.Abp.Identity
Configure(options =>
{
options.EtoMappings.Add();
+ options.EtoMappings.Add();
+ options.EtoMappings.Add();
+ });
+
+ Configure(options =>
+ {
+ options.AddProfile(validate: true);
});
var identityBuilder = context.Services.AddAbpIdentity(options =>
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs
new file mode 100644
index 0000000000..582e37c6d9
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs
@@ -0,0 +1,13 @@
+using AutoMapper;
+
+namespace Volo.Abp.Identity
+{
+ public class IdentityDomainMappingProfile : Profile
+ {
+ public IdentityDomainMappingProfile()
+ {
+ CreateMap();
+ CreateMap();
+ }
+ }
+}
\ No newline at end of file