我是 .Net 新手,正在构建一个 Web 应用程序,我想在用户登录或注册并确认注册时创建一个会话。为了登录,我有一个剃刀页面:登录,它只是提示用户输入他们的用户名和密码,这些用户名和密码应该在我的sql服务器中并经过验证。一旦检查到有效用户标志正确,我想创建会话并将用户发送到索引。然后在索引中,我想查看会话是否已创建,并且想读取会话中的值并将其显示到索引视图上,以确认已捕获用户信息。
我的 Login.cs 文件如下所示:
public ActionResult OnPost(string UserName, string Password)
{
if (!ModelState.IsValid)
{
return Page();
}
if(accountService.ValidateUserLogin(UserName, Password) == 1)
{
string Email = accountService.UsernameGetEmail(UserName);
HttpContext.Session.SetString(Email, TempData["email"].ToString());
return RedirectToPage("/Index");
}
else
{
//report error to user
return Page();
}
}
这是我尝试在 Index.cs 页面中捕获会话信息的地方:
public void OnGet()
{
if (HttpContext.Session.Id != null)
{
SessionEmail = HttpContext.Session.GetString("Email");
ViewData["SessionEmail"] = SessionEmail;
}
}
这是我尝试将 SessionEmail 显示到视图上的 html 片段,但在 index.cs 文件内初始化 SessionEmail 时它为空。
<div>
@{
if( ViewData["SessionEmail"] != null)
{
<p> Hello! @ViewData["SessionEmail"].ToString() </p>
}
}
</div>
希望您能指出我的错误以及我如何尝试建立会话。在我能够设置会话后,我将编辑我的布局的导航栏,以便如果用户是否登录,它就会改变,所以也许您可以指出我如何通过会话来解决这个问题也许会很棒:httpcontext.session.IsAvailable?另外,我的启动中也有 addSession 和 useSession 。
湖上湖
相关分类