Чтобы просмотреть и получить переменные сеанса в .NET CORE:
В файле Startup.cs в разделе метода Configure добавьте следующую строку:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession();
}
И подметод ConfigureServices, добавьте следующую строку:
public void ConfigureServices(IServiceCollection services)
{
//Added for session state
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(10);
});
}
Чтобы установить строку сеанса:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
../
HttpContext.Session.SetString("UserID", "Your user ID");
Чтобы получить переменную сеанса (например, на вашей странице бритвы):
@Context.Session.GetString("UserID")
РЕДАКТИРОВАТЬ :
Чтобы сохранить сложные объекты в сеансе в .NET Core, выполните следующие действия:
Создайте класс модели изтип вашего объекта (в вашем случае EmployeeDetails):
public class EmployeeDetails
{
public string EmployeeId { get; set; }
public string DesignationId { get; set; }
}
Затем создайте помощник SessionExtension для установки и получения вашего сложного объекта в формате JSON:
public static class SessionExtensions
{
public static void SetObjectAsJson(this ISession session, string key, object value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T GetObjectFromJson<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}
Затем, наконец, установите сложный объект вваш сеанс как:
var employee = new EmployeeDetails();
employee.EmployeeId = "1";
employee.DesignationId = "2";
HttpContext.Session.SetObjectAsJson("EmployeeDetails", employee);
Чтобы получить ваш сложный объект в сеансе:
var employeeDetails = HttpContext.Session.GetObjectFromJson<EmployeeDetails>("EmployeeDetails");
int employeeID = Convert.ToInt32(employeeDetails.EmployeeId);
int designationID= Convert.ToInt32(employeeDetails.DesignationId);