Сессия не была настроена для этого приложения или ошибка запроса - PullRequest
0 голосов
/ 31 мая 2018

Я очень новичок в 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");
        }

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

Ответы [ 3 ]

0 голосов
/ 25 июля 2018

В ваших файлах Startup.cs вам может потребоваться вызвать

app.UseSession перед app.UseMvc

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

Чтобы это работало, вам также нужно убедиться, что установлен пакет nuget Microsoft.AspNetCore.Session .

0 голосов
/ 16 октября 2018
    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?}");
            });
        }
0 голосов
/ 31 мая 2018
HttpContext.Session.Add("name", "value");

ИЛИ

HttpContext.Session["username"]="Value";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...