Ответ 1
В вашем Startup.cs вам может понадобиться позвонить
app.UseSession перед app.UseMvc
app.UseSession();
app.UseMvc();
Я очень новичок в 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");
}
Я понятия не имею, почему это происходит или что означает эта ошибка. Может кто-нибудь объяснить, что может быть причиной этого?
В вашем Startup.cs вам может понадобиться позвонить
app.UseSession перед app.UseMvc
app.UseSession();
app.UseMvc();
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?}");
});
}
HttpContext.Session.Add("name", "value");
ИЛИ ЖЕ
HttpContext.Session["username"]="Value";