Search Results for

    Show / Hide Table of Contents

    ICurrentPrincipalAccessor

    From ImageVault.Client v6.2

    In order to mimimize external dependencies, the IClientPrincipalAccessor were introduced. It's purpose is to deliver the current users IPrincipal instance. This is used when the ClientFactory tries to create a CurrentUserClient.

    As default the Thread.CurrentPrincipal is used but if this isn't sufficient, you can implement a custom implementation of the ICurrentPrincipalAccessor interface.

    For example, if you use a .netFramework web application that relies on HttpContext.Current.User to resolve the current IPrincipal, then you can implement an own

    using System.Security.Principal;
    using System.Threading;
    using ImageVault.Client;
    
    internal class HttpContextPrincipalAccessor : ICurrentPrincipalAccessor
    {
        public IPrincipal CurrentPrincipal => System.Web.HttpContext.Current?.User ?? Thread.CurrentPrincipal;
    }
    

    Then register it using the ConfigureServices method when configuring the IHost.

    AppHost = Host.CreateDefaultBuilder()
    .ConfigureServices((context, services) =>
    {
        services.AddSingleton<ICurrentPrincipalAccessor, HttpContextPrincipalAccessor>();
    })
    .Build();
    
    In This Article
    Back to top (c) Meriworks 2002-2022