我有一个使用Session的ASP.Net vNext项目。但是在尝试获取/设置会话值时,我遇到了此错误。
类型为'System.InvalidOperationException' 的异常在Microsoft.AspNet.Http.Core.dll中发生,但未在用户代码中处理
其他信息:此应用程序或请求未配置会话。
这是我的控制器方法:
[AllowAnonymous]
[HttpGet("/admin")]
public IActionResult Index()
{
if (Context.Session.GetString("UserName") == null) // error thrown here
{
return RedirectToAction("Login");
}
return View();
}
我已经在project.json
文件中添加了KVM包"Microsoft.AspNet.Session": "1.0.0-beta3"
,并通过我的Startup.cs
配置应用程序以使用会话(Session):
public void ConfigureServices(IServiceCollection services)
{
// code removed for brevity
services.AddCachingServices();
services.AddSessionServices();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
app.UseInMemorySession(configure: s => s.IdleTimeout = TimeSpan.FromMinutes(30));
}
我已经查看了 Github 上关于 vNext 的文档,但它并没有提供关于 ASP.Net 会话的太多信息。我做错了什么吗?
app.UseSession();
放在app.UseMvc();
之前移动了一下。 - feradz