提问人:weboshi 提问时间:7/27/2023 最后编辑:weboshi 更新时间:7/27/2023 访问量:59
为什么即使我在其中设置了一个值,会话也返回 null?
Why is session returning null even if I set a value in it?
问:
我想将日期设置为会话,但它给了我一个空值。
这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using PowerBICustomPage.Models;
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using System.Security.Claims;
using System.Web;
namespace PowerBICustomPage.Controllers.Api
{
[Authorize]
public class AccountController : ApiController, IRequiresSessionState
{
DataClassesDataContext _context;
public AccountController()
{
_context = new DataClassesDataContext();
}
[AllowAnonymous]
[HttpPost]
public IHttpActionResult Login(LoginViewModel model)
{
var userinfo = _context.Users.SingleOrDefault(l => l.UserName == model.UserName);
DateTime DateExp = userinfo.DateExpiration.Value;
var date = DateExp.ToString("dd/MM/yyyy HH:mm:ss");
HttpContext.Current.Session["expired"] = date;// THIS LINE RETURNS NULL
}
}
}
我只是缩短了我的代码,这样它就不会看起来很乱。此外,Intellisense 没有拾取 ViewBag 或 Session[“”],我不知道为什么。
我试过这个
HttpContext context = HttpContext.Current;
context.Session["expired"] = DateExp.ToString("dd/MM/yyyy HH:mm:ss");
但它仍然返回一个 null 值
答:
0赞
YungDeiza
7/27/2023
#1
HttpContext.Current.Session[“expired”] = date;// 此行返回 零
该行不返回 null,它不返回任何内容。这是一项赋值,因此不会返回任何内容。您需要在操作结束时返回正确的视图。
也:
return View();
艺术
return View("NameOfViewToLoad");
应添加到方法的末尾。
注意:Login()
允许人们在未经身份验证的情况下调用它,但似乎没有执行任何身份验证。出于安全原因,建议更改方法 - 至少是简单的密码检查
评论
0赞
weboshi
7/28/2023
我有一个返回结果,导致一个ajax脚本。该脚本导致 Home 索引。
0赞
YungDeiza
7/28/2023
似乎您遗漏了一大堆关键代码
评论