Asp.net mvc 4 如何在asp.net mvc4中将多个会话值设置为null?

Asp.net mvc 4 如何在asp.net mvc4中将多个会话值设置为null?,asp.net-mvc-4,session,Asp.net Mvc 4,Session,我有一个管理员和用户会话 Session["uname"] Session["Admin"] 我的查询是会话结束时,仅管理员重定向到登录页面。但当用户会话结束时,它不会重定向到登录页面 请给我建议如何为管理员和用户设置会话 这是我的密码 用户是我的控制器 登录操作 [HttpPost] public ActionResult Login(Models.User user) { var query = db.Users.Where(q => q.UserName =

我有一个管理员和用户会话

 Session["uname"]  
 Session["Admin"]
我的查询是会话结束时,仅管理员重定向到登录页面。但当用户会话结束时,它不会重定向到登录页面

请给我建议如何为管理员和用户设置会话

这是我的密码

用户是我的控制器

登录操作

[HttpPost]
public ActionResult Login(Models.User user)
{
        var query = db.Users.Where(q => q.UserName == user.UserName 
&& q.Password == user.Password);

        if (ModelState.IsValid)
        {
            //   Session["uname"] = true;
            if (query.Any())
            {            
                if (query.FirstOrDefault().Role.Role1.ToLower() == "admin")
                {
                    Session["admin"] = true;
                    return RedirectToAction("Index", "user");
               }             
               else
               {
                    Session["uname"] = true;
                    return RedirectToAction("Details", "user", 
new { id = query.FirstOrDefault().Id });
               }
          }
     }

     return View(user);
}
Public ActionResult Index()
    {          
        var users = db.Users.ToList();
         var session = Session["uname"];
        if (Session["admin"] == null)
        {
            return RedirectToAction("Login", "User");
        }
        else if (Session["admin"] != null)
        {
            return View(users.ToList());
        }
        else
        {
            return RedirectToAction("About", "Home");
        }
    }
这里是索引操作

  public ActionResult Index()
  {
        var users = db.Users.ToList();

        if (Session["uname"] != null || Session["Admin"]==null)
        {
            return RedirectToAction("Login", "User" );
        }
        else if (Session["admin"] != null)
        {
            return View(users.ToList());
        }
        else
        {
            return RedirectToAction("About", "Home");
        }
    }
提前谢谢

在用户会话结束后,它会显示如下内容

Register | Sign In

Details
UserName
User
Password
User
Role1
User

Edit | Back to List 

您可以设置一个会话变量
session[“userType”]
,其值可以是“Admin”或“User”,以确定什么类型的用户试图访问您的索引操作方法

查看[授权]属性以控制您的访问

我的查询是当会话结束时,只有管理员重定向到登录页面。但当用户会话结束时,它不会重定向到登录页面

在这种情况下,您需要而不是

if (Session["uname"] != null && Session["Admin"]==null)
{
     return RedirectToAction("Login", "User" );
}
或:


我得到了一个解决方案,只是一个小编辑

索引操作

[HttpPost]
public ActionResult Login(Models.User user)
{
        var query = db.Users.Where(q => q.UserName == user.UserName 
&& q.Password == user.Password);

        if (ModelState.IsValid)
        {
            //   Session["uname"] = true;
            if (query.Any())
            {            
                if (query.FirstOrDefault().Role.Role1.ToLower() == "admin")
                {
                    Session["admin"] = true;
                    return RedirectToAction("Index", "user");
               }             
               else
               {
                    Session["uname"] = true;
                    return RedirectToAction("Details", "user", 
new { id = query.FirstOrDefault().Id });
               }
          }
     }

     return View(user);
}
Public ActionResult Index()
    {          
        var users = db.Users.ToList();
         var session = Session["uname"];
        if (Session["admin"] == null)
        {
            return RedirectToAction("Login", "User");
        }
        else if (Session["admin"] != null)
        {
            return View(users.ToList());
        }
        else
        {
            return RedirectToAction("About", "Home");
        }
    }
当我重定向到详细操作时,我在详细操作中编写会话空代码

   public ActionResult Details(int id = 0)
    {
        User user = db.Users.Find(id);
        if (user == null)
        {
            return HttpNotFound();
        }
        if (Session["uname"] == null)
        {
            return RedirectToAction("About", "Home");
        }
        return View(user);
    }
并在\u Layout.cshtml文件中进行更改

  @if (Session["uname"] == null && Session["admin"]==null)
{
    @Html.ActionLink("Register", "create", "User")

    <span>| </span>

    <strong>@Html.Encode(User.Identity.Name)</strong>
    @Html.ActionLink("Sign In", "Login", "User")
}
else
{
    @Html.ActionLink("Sign Out", "Logout", "User")
}
@if(会话[“uname”]==null&&Session[“admin”]==null)
{
@ActionLink(“注册”、“创建”、“用户”)
| 
@Html.Encode(User.Identity.Name)
@ActionLink(“登录”、“登录”、“用户”)
}
其他的
{
@ActionLink(“注销”、“注销”、“用户”)
}

您的代码不起作用???@EhsanSajjad我的代码在我的系统上起作用。您所说的不起作用是什么意思,说不起作用无助于解决问题