How do I access HttpContext in Server-side Blazor?

后端 未结 4 1892
感动是毒
感动是毒 2020-12-06 00:40

I need to access HttpContext in a page (.cshtml) and in particular a request and then a cookie. Despite available, HttpContextAccessor always has

4条回答
  •  伪装坚强ぢ
    2020-12-06 01:14

    blazor.Sever to Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddServerSideBlazor();
    
        // HttpContextAccessor
        services.AddHttpContextAccessor();
        services.AddScoped();
    }
    

    blazor.Shared

    public class HttpContextAccessor
    {
       private readonly IHttpContextAccessor _httpContextAccessor;
    
       public HttpContextAccessor(IHttpContextAccessor httpContextAccessor)
       {
            _httpContextAccessor = httpContextAccessor;
       }
    
       public HttpContext Context => _httpContextAccessor.HttpContext;
    }
    

    blazor.Client to App.cshtml

    @inject blazor.Shared.HttpContextAccessor HttpContext
    
    
    @functions 
    {      
        protected override void OnInit()
        {
           HttpContext.Context.Request.Cookies.**
    
           // Or data passed through middleware in blazor.Server
           HttpContext.Context.Features.Get()
        }
    }
    

    Credits: https://github.com/aspnet/Blazor/issues/1554

提交回复
热议问题