lkymmd 2015-05-06 06:47 采纳率: 0%
浏览 1487

新手程序员,求解一个关于MVC验证登陆的问题

想用服务器session来实现验证登陆状态的功能

业务逻辑代码如下

 public User Login(string username,string pwd)
        {
            DAL.AboutUser au = new DAL.AboutUser();
            User user = au.Login(username, pwd);
            if (user != null)
            {
                HttpContext.Current.Session["CurrentUser"] = user;
                return user;
            }
            else
            {
                return null;
            }
        }

控制器里面的代码是这样的

 namespace ACMwebOnline.Controllers
{
    public class UserController : Controller
    {
        //
        // GET: /User/
        public AboutUser hm = new AboutUser();

        public ActionResult Index()
        {
            if (Session["CurrentUser"] != null)
            {
                var u = (User)Session["CurrentUser"];
                ViewData.Model = u;
                return View("UserInfo");
            }
            //登陆
            var username = Request["username"];
            var pwd = Request["pwd"];
            User user = null;
            if (username != null && pwd != null)
            {
                user = hm.Login(username, pwd);
                if (user != null)
                {
                    var u = (User)Session["CurrentUser"];
                    ViewData.Model = u;
                    return View("UserInfo");
                }
                return Content("no:用户名密码错误");
            }
            return View("Login");
        }
    }
}

现在的问题:
我的思路是在业务逻辑层登陆成功的时候在服务器中存储session,然后再次访问这个控制器的时候通过验证session是否为空来决定返回登陆页面还是登陆信息页面~
代码就是上面的,可是运行实际情况是出现了登陆页面,但是输完账号密码之后还是出现登陆页面~是不是session存储出现了问题~新手程序员,求前辈们指点

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-05-06 07:15
    关注

    先调试看看User user = au.Login(username, pwd);这里执行得结果是什么

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面