/// <summary>
        /// Use this to load and configure the Identity Azure Tables into the aspnet identity pipeline.
        /// Note: <see cref="IdentityBuilder.AddRoles{TRole}"/> prior to calling this methiod in the pipeline if you need Roles functionality, otherwise the RoleStore will not be loaded.
        /// </summary>
        /// <typeparam name="TContext">Use or extend <see cref="IdentityCloudContext"/></typeparam>
        /// <param name="builder"><see cref="IdentityBuilder"/> aspnet identity pipeline</param>
        /// <param name="configAction"><see cref="IdentityConfiguration"/></param>
        /// <param name="keyHelper">Use <see cref="DefaultKeyHelper"/> that uses SHA1,  <see cref="SHA256KeyHelper"/> or a custom keyhelper that implements <see cref="IKeyHelper"/> </param>
        /// <returns><see cref="IdentityBuilder"/></returns>
        public static IdentityBuilder AddAzureTableStores <TContext>(this IdentityBuilder builder, Func <IdentityConfiguration> configAction,
                                                                     IKeyHelper keyHelper = null)
            where TContext : IdentityCloudContext, new()
        {
            builder.Services.AddSingleton <IKeyHelper>(keyHelper ?? new DefaultKeyHelper());

            builder.Services.AddSingleton <IdentityConfiguration>(new Func <IServiceProvider, IdentityConfiguration>(p => configAction()));

            Type contextType = typeof(TContext);

            builder.Services.AddScoped(contextType, contextType);

            Type userStoreType = builder.RoleType != null ? typeof(UserStore <, ,>).MakeGenericType(builder.UserType, builder.RoleType, contextType)
                : typeof(UserOnlyStore <,>).MakeGenericType(builder.UserType, contextType);

            builder.Services.AddScoped(
                typeof(IUserStore <>).MakeGenericType(builder.UserType),
                userStoreType);

            if (builder.RoleType != null)
            {
                Type roleStoreType = typeof(RoleStore <,>).MakeGenericType(builder.RoleType, contextType);

                builder.Services.AddScoped(
                    typeof(IRoleStore <>).MakeGenericType(builder.RoleType), roleStoreType);
            }
            return(builder);
        }
 /// <summary>
 /// Generates Row, Partition and Id keys.
 /// All are the same in this case
 /// </summary>
 public void GenerateKeys(IKeyHelper keyHelper)
 {
     if (string.IsNullOrWhiteSpace(Id))
     {
         Id = keyHelper.GenerateUserId();
     }
     RowKey       = PeekRowKey(keyHelper);
     PartitionKey = RowKey;
     KeyVersion   = keyHelper.KeyVersion;
 }
示例#3
0
        internal TextField(ILogger logger, IKeyHelper keyHelper, ICursorProvider cursorProvider,
                           ApplicationWindow applicationWindow, Text text, Text tooltipText)
        {
            this.logger            = logger;
            this.keyHelper         = keyHelper;
            this.cursorProvider    = cursorProvider;
            this.applicationWindow = applicationWindow;
            this.text        = text;
            this.tooltipText = tooltipText;

            keyCallbacks.Add(Key.Left, leftKeyPressed);
            keyCallbacks.Add(Key.Right, rightKeyPressed);
            keyCallbacks.Add(Key.BackSpace, backspaceKeyPressed);
            keyCallbacks.Add(Key.Delete, deleteKeyPressed);
        }
 public ClaimMigrateRowkey(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
 /// <summary>
 /// Generates the RowKey without setting it on the object.
 /// </summary>
 /// <returns></returns>
 public string PeekRowKey(IKeyHelper keyHelper)
 {
     return(keyHelper.GenerateRowKeyIdentityUserLogin(LoginProvider, ProviderKey));
 }
 /// <summary>
 /// Generates Row and Id keys.
 /// Partition key is equal to the UserId
 /// </summary>
 public void GenerateKeys(IKeyHelper keyHelper)
 {
     Id         = Guid.NewGuid().ToString();
     RowKey     = PeekRowKey(keyHelper);
     KeyVersion = keyHelper.KeyVersion;
 }
示例#7
0
 public EmailMigrateIndex(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
示例#8
0
 public UserStore(TContext context, IKeyHelper keyHelper, IdentityConfiguration config) :
     base(context, keyHelper, config)
 {
 }
 public RoleStore(IdentityCloudContext context, IKeyHelper keyHelper)
     : base(context, keyHelper)
 {
 }
示例#10
0
 public RoleAndClaimMigrateIndex(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
 /// <summary>
 /// Generates Row and Id keys.
 /// Partition key is equal to the UserId
 /// </summary>
 public void GenerateKeys(IKeyHelper keyHelper)
 {
     RowKey       = PeekRowKey(keyHelper);
     PartitionKey = keyHelper.GeneratePartitionKeyIdentityRole(Name);
     KeyVersion   = keyHelper.KeyVersion;
 }
示例#12
0
 /// <summary>
 /// Generates the RowKey without setting it on the object.
 /// </summary>
 /// <returns></returns>
 public string PeekRowKey(IKeyHelper keyHelper)
 {
     return(keyHelper.GenerateRowKeyIdentityUserToken(LoginProvider, Name));
 }
 public RolesMigration(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
示例#14
0
 /// <summary>
 /// Generates Row and Id keys.
 /// Partition key is equal to the UserId
 /// </summary>
 public void GenerateKeys(IKeyHelper keyHelper)
 {
     RowKey     = PeekRowKey(keyHelper);
     KeyVersion = keyHelper.KeyVersion;
 }
示例#15
0
 public UserOnlyStore(IdentityCloudContext context, IKeyHelper keyHelper, IdentityConfiguration config) : base(context, keyHelper, config)
 {
 }
 public UsersMigration(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
 public LoginMigrateIndex(IKeyHelper keyHelper)
 {
     _keyHelper = keyHelper;
 }
示例#18
0
 /// <summary>
 /// Generates the RowKey without setting it on the object.
 /// </summary>
 /// <returns></returns>
 public string PeekRowKey(IKeyHelper keyHelper)
 {
     return(keyHelper.GenerateRowKeyIdentityRoleClaim(ClaimType, ClaimValue));
 }
 /// <summary>
 /// Generates the RowKey without setting it on the object.
 /// </summary>
 /// <returns></returns>
 public string PeekRowKey(IKeyHelper keyHelper)
 {
     return(keyHelper.GenerateRowKeyIdentityRole(Name));
 }
 /// <summary>
 /// Generates the RowKey without setting it on the object.
 /// In this case, just returns a key based on username
 /// </summary>
 /// <returns></returns>
 public string PeekRowKey(IKeyHelper keyHelper)
 {
     return(keyHelper.GenerateRowKeyUserId(Id));
 }