builder.Services.AddDistributedMemoryCache(); builder.Services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(30); options.Cookie.HttpOnly = true; options.Cookie.IsEssential = true; }); builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); //.... app.UseSession();
母版頁_Layout.cshtml中使用:
@using Microsoft.AspNetCore.Http @inject Microsoft.AspNetCore.Http.IHttpContextAccessor _httpContextAccessor; <div class="rtm r3"> @if(_httpContextAccessor.HttpContext.Session.GetInt32("loginid") == null){ <a href="javascript:;" class="rg1" onclick="login(2)">註冊</a> <a href="javascript:;" class="rg2" onclick="login(1)">登錄</a> } else { <span>歡迎您, @_httpContextAccessor.HttpContext.Session.GetString("loginname") ,</span> <a href="/home/loginout" class="rg2">退出登錄</a> } </div>