Сессия не настроена для этого приложения или не запрашивается ошибка

Я очень новичок в asp.net. Недавно я столкнулся с этим исключением:

System.InvalidOperationException

Подробности исключения гласят:

Сессия не настроена для этого приложения или запроса.

Вот фрагмент кода, где это происходит:

[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");
        }

Я понятия не имею, почему это происходит или что означает эта ошибка. Может кто-нибудь объяснить, что может быть причиной этого?

Ответы

Ответ 1

В вашем Startup.cs вам может понадобиться позвонить

app.UseSession перед app.UseMvc

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

Ответ 2

    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?}");
            });
        }

Ответ 3

HttpContext.Session.Add("name", "value");

ИЛИ ЖЕ

HttpContext.Session["username"]="Value";