web-dev-qa-db-fra.com

La session n'a pas été configurée pour cette application ou une erreur de demande

Je suis très nouveau sur asp.net J'ai récemment rencontré cette exception:

System.InvalidOperationException

Les détails de l'exception indiquent:

La session n'a pas été configurée pour cette application ou demande.

Voici l'extrait de code où cela se passe:

[HttpPost]
        public object Post([FromBody]loginCredentials value)
        {
            if (value.username.Equals("Admin")
                &&
                value.password.Equals("admin"))
            {
                HttpContext.Session.Set("userLogin", System.Text.UTF8Encoding.UTF8.GetBytes(value.username)); //This the line that throws the exception.
                return new
                {
                    account = new
                    {
                        email = value.username
                    }
                };
            }
            throw new UnauthorizedAccessException("invalid credentials");
        }

Je ne sais pas du tout pourquoi cela se produit ni ce que cette erreur signifie réellement. Quelqu'un peut-il s'il vous plaît expliquer ce qui pourrait être la cause?

25
Keselme

Dans votre Startup.cs, vous devrez peut-être appeler

app.UseSession avant app.UseMvc

app.UseSession();  
app.UseMvc();  

Pour que cela fonctionne, vous devez également vous assurer que le package Microsoft.AspNetCore.Session nuget est installé.

56
Austin Born
    Following code worked out for me:

    Configure Services :

    public void ConfigureServices(IServiceCollection services)
            {
                //In-Memory
                services.AddDistributedMemoryCache();
                services.AddSession(options => {
                    options.IdleTimeout = TimeSpan.FromMinutes(1);
                });              
                // Add framework services.
                services.AddMvc();
           }

Configure the HTTP Request Pipeline:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            app.UseStaticFiles();
            app.UseSession();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
6
Uttam
HttpContext.Session.Add("name", "value");

OR

HttpContext.Session["username"]="Value";
1
Debashish Saha