Answered by:
ASP.Net Core and Sessions

Question
-
User-309523270 posted
Hi,
I'm using MVC, ASP.Net Core 2.2. I'm trying to save parameters in session.
After I click "Search" button, the app goes to the Index and saves the parameter "IssueSearchParms" in session. I click "Edit" to go to a record. On the Edit Screen, I click "Back to List", the application goes to "BackToList" and the session "IssueSearchParms" is null. Why didn't it have the saved parameter?
Please advise.
Thanks,
tinac99
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
})
.AddSessionStateTempDataProvider();services.AddDistributedMemoryCache();
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.Cookie.HttpOnly = true;
options.Cookie.Name = ".ToolsAppSession";//options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
});services.AddMemoryCache();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = context =>
{
context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
context.Context.Response.Headers.Add("Expires", "-1");
}
});app.UseCookiePolicy();
app.UseSession();}
Controller
using Common;
using Microsoft.AspNetCore.Session;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;namespace ToolsOracle.Controllers
{
[Authorize]
public class IssueController : BaseTransactionController
{
private IssueService _issueService;
private IssueRepository _issueRepository;
string asTransactionType = "ISSUE";
string asTransactionToLabel = "Issued_To";public IssueController( )
{
_issueService = _service;
_issueRepository = issueRepository;
}
[HttpPost]
public ActionResult Index(IssueReturnSearchScreen oData, MaterialEntryViewModel MaterialCriteria)
{
if (ModelState.IsValid)
{
oData.ResultData = new IssueReturnSearchByTransactionResultParmsViewModel();
oData.ResultData.GoToController = "Issue";
if (oData.criteria.ShowResultBy == "TransactionId")
{
oData.criteria.MaterialCriteria = MaterialCriteria;
oData.criteria.MaterialCode = MaterialCriteria.MaterialCode ;
oData.criteria.MaterialDescription = MaterialCriteria.MaterialDescription ;
oData.ResultData.byTransactionResult = _issueService.searchStatusByTransaction(oData.criteria);
}
else
{
oData.ResultData.byMaterialResult = _issueService.searchIssueByMaterial(oData.criteria);
}
}string sparms = JsonConvert.SerializeObject(oData.criteria);
HttpContext.Session.SetString("IssueSearchParms", JsonConvert.SerializeObject(oData.criteria));oData.user = base.currentUserDTO;
oData.criteria.MaterialCriteria = MaterialCriteria;return View("Index", oData);
}
public ActionResult BackToIndex()
{
string sparms = HttpContext.Session.GetString("IssueSearchParms");if (HttpContext.Session.GetString("IssueSearchParms") != null)
{
var value = HttpContext.Session.GetString("IssueSearchParms");
IssueReturnSearchCriteria scriteria = JsonConvert.DeserializeObject<IssueReturnSearchCriteria>(value);
}return View("Index", null);
}
View<form method="post" action="BackToIndex">
<div>
<button type="submit" class="btn btn-link">Back to List</button>
</div>
</form>Tuesday, December 31, 2019 5:39 PM
Answers
-
User-309523270 posted
Got it.
In the
ConfigureServices
method of the Startup class, Setoptions.CheckConsentNeeded = context => false;
as follows:services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});https://stackoverflow.com/questions/49770491/session-variable-value-is-getting-null-in-asp-net-core
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, December 31, 2019 5:47 PM