过滤器+用session验证是否登陆过

过滤器:

public class MyActionFilter : ActionFilterAttribute//继承ActionFilterAttribute类
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //用session验证是否登陆过
            if(filterContext.HttpContext.Session["visitor_name"] == null)
            {
                //未登录则跳转到登录页面,并拖过url?传递状态码?Login_state=false用于前端验证并友好提示
                filterContext.HttpContext.Response.Redirect("/Login_/Index?Login_state=false",true);
            }
        }

    }

Login_Controller.cs:

        public ActionResult Login(string name, string pwd)//传进来的字符串实际没用上
        {
            var get_name = Request["name"];
            var get_pwd = Request["pwd"];
            JJQPractice visitor = JJQPractice.SingleOrDefault(new { name = get_name });//得到对应输入的账号的集
            if (visitor != null)//验证输入的账号是否存在
            {
                if (visitor.pwd == get_pwd)//验证密码是否正确
                {
                    Session["visitor_name"] = get_name;//在session中写入name用于判断登录状态
                    return RedirectToAction("Index", "Select_");//密码正确后跳转到查询视图
                }
                else
                {
                    Response.Write("登录失败!密码错误.");
                    return View("Index");
                }
            }
            else
            {
                Response.Write("登录失败,用户名不存在.");
                return View("Index");
            }
        }

原文地址:https://www.cnblogs.com/jsll/p/11684209.html

时间: 2024-11-09 00:32:07

过滤器+用session验证是否登陆过的相关文章

利用Node.js实现模拟Session验证的登陆

1.身份验证和用户登陆 在一般的Web应用上,如果要实现用户登陆,最常用,也是最简单的方法就是使用Session,基本的思路是在Session中保留一些用户身份信息,然后每次在Session中取,如果信息不正确或不存在,那么身份验证失败,正确则成功. Session和Cookie是两个很相似的东西,都是字符串,只不过Session是保存在服务器上的,而Cookie是保存在本地的,所以Cookie是不能用作身份验证的.Session故名思议,肯定和客户端与服务器间建立的会话相关,Session的工

session验证登陆- 页面跳转

用session验证登陆,当用户想访问一个页面时由于没有登录,就跳转到登录页面,登录后跳转到用户请求的页面,在session跳转中传上次请求的页面.  怎么获得这个url值并跳转到该页面呢? 以此跳转到的登录页面的url为例: http://localhost:3225/Login.aspx?u=/UpLoadPic.aspx session代码为: public class CheckSession:System.Web.UI.Page { protected override void On

设置常用的过滤器-不适用缓存、登陆过滤器

设置不使用缓存的过滤器 功能描述 将HTTP响应头信息中的缓存参数设置为不进行缓存. 使用方法 在 java web 项目的 web.xml 文件中添加如下代码. <!--设置不使用缓存的过滤器配置 开始 --> <filter> <filter-name>ClearCacheFilter</filter-name> <filter-class>com.hmw.filter.ClearCacheFilter</filter-class>

Django之session验证的三种姿势

一.什么是session session是保存在服务端的键值对,Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中. 二.FVB中使用装饰器进行session验证 认证装饰器: # 登陆验证 def auth(func): '''判断是否登录装饰器''' def inner(request, *args, **kwargs): ck = request.session.get("username") '''如果没有登

【转】java基于token验证之登陆验证

转自博客 https://blog.csdn.net/weixin_39102174/article/details/90411116 以上博主讲的更清除些,此博客是为了自己加深记忆. 对于前后端分离的项目来说session来判断是否登陆实现比较困难,token是比较好的方式. 大概流程: 1.用户登陆,若成功则后台生成一个token,并把此token返回给客户端浏览器 2.客户端接收到token后,每次请求都要把此token放到header中发给后段 3.后段使用拦截器判断token的正确性和

Asp.Net使用加密cookie代替session验证用户登录状态 源码分享

首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段   本实例采用vs2010编写,vb和c#的代码都是经过测试的:一些童鞋说代码有问题的 注意下    什么? 你还在用vs2008 vs2005? 请自行重载 带有 optional 标致的函数   童鞋们提到的 密码修改后 要失效的问题 当时没有想到 个人认为 大致方向可以> >1. 每个用户生成1个xml 里面保存随机的几

09-利用session完成用户登陆

/***********************************************login.html*****************************************/ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>&l

Filter进行session验证

解决方法:先创建一个新的控制器  随变命名  adminFilterConter   让他继承自controller控制器  在里面写方法 在执行方法之前授限执行 protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (Session["UserInfo"] == null) { Response.Redirect("/UserLogin/Index"

利用session完成用户登陆

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.List; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 import javax