public static void BuildIdentityUser <TEntity, TKey>(this EntityMappingBuilder <TEntity> builder, StoreOptions storeOptions, DefaultPersonalDataProtector personalDataConverter, string tableName = UserTableName)
     where TKey : IEquatable <TKey>
     where TEntity : class, IIdentityUser <TKey>
 {
     builder.HasTableName(tableName);
     builder.HasPrimaryKey(u => u.Id);
     builder.Property(u => u.NormalizedName).HasLength(256);
     builder.Property(u => u.Name).HasLength(256);
     ///builder.HasIndex(u => u.NormalizedName).HasDatabaseName(normalizedNameIndex).IsUnique();
     storeOptions.EncryptIdentityPersonalData <TEntity>(personalDataConverter);
 }
        public static void EncryptIdentityPersonalData <T>(this StoreOptions storeOptions, DefaultPersonalDataProtector personalDataConverter)
            where T : class
        {
            var encryptPersonalData = storeOptions?.ProtectPersonalData ?? false;

            if (encryptPersonalData)
            {
                var personalDataProps = typeof(T).GetProperties().Where(prop => Attribute.IsDefined(prop, typeof(ProtectedPersonalDataAttribute)));
                foreach (var p in personalDataProps)
                {
                    if (p.PropertyType != typeof(string))
                    {
                        throw new InvalidOperationException("Can Only Protect Strings");
                    }
                    //builder.Property(e => Sql.Property<string>(e, p.Name)).HasConversion(personalDataConverter);
                    throw new NotImplementedException();
                }
            }
        }
 public static void BuildIdentityUserToken <TKey>(this FluentMappingBuilder builder, StoreOptions storeOptions, DefaultPersonalDataProtector personalDataConverter, string tableName = UserTokenTableName)
     where TKey : IEquatable <TKey>
 => builder.Entity <IIdentityUserToken <TKey> >().BuildIdentityUserToken <IIdentityUserToken <TKey>, TKey>(storeOptions, personalDataConverter);
        public static void BuildIdentityUserToken <TUser, TKey>(this EntityMappingBuilder <TUser> builder, StoreOptions storeOptions, DefaultPersonalDataProtector personalDataConverter, string tableName = UserTokenTableName)
            where TKey : IEquatable <TKey>
            where TUser : class, IIdentityUserToken <TKey>
        {
            builder.HasTableName(tableName);
            builder.HasPrimaryKey(t => new { t.UserId, t.LoginProvider, t.Name });
            var maxKeyLength = storeOptions?.MaxLengthForKeys ?? 0;

            if (maxKeyLength > 0)
            {
                builder.Property(t => t.LoginProvider).HasLength(maxKeyLength);
                builder.Property(t => t.Name).HasLength(maxKeyLength);
            }
            storeOptions.EncryptIdentityPersonalData <TUser>(personalDataConverter);
        }
Exemplo n.º 5
0
        public static void EncryptIdentityPersonalData <T>(this MappingSchema mappingSchema, StoreOptions storeOptions, DefaultPersonalDataProtector personalDataConverter) where T : class
        {
            var encryptPersonalData = storeOptions?.ProtectPersonalData ?? false;

            if (encryptPersonalData)
            {
                mappingSchema.SetConverter <string, ProtectedDataString>(value => ProtectedDataString.Protect(value));
                mappingSchema.SetConverter <ProtectedDataString, string>(value => ProtectedDataString.Unprotect(value));
            }
        }