zoukankan      html  css  js  c++  java
  • MVC判断用是否登录了平台

    需求就是要求有些页面需要用户登陆了之后才能访问,那么就需要是否登录验证,直接上代码:

    这个可以单独写到一个类里面:

    WebAuthenUsers.cs:

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Web.Mvc;
    using WLSH.B2B.Shop.Common;
    using WLSH.B2B.Shop.Core;
    using WLSH.B2B.Shop.Core.DataBase;
    using WLSH.B2B.Shop.Core.DataOther;
    
    namespace WLSH.B2B.Shop.Web
    {
        public class WebAuthenUsers : ActionFilterAttribute
        {
            /// <summary>
            /// 执行Action之前操作
            /// </summary>
            /// <param name="filterContext"></param>
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                //BaseServiceContents<Users> _baseContent = new BaseServiceContents<Users>();
                //Users users = _baseContent.Find(Guid.Parse("7CB684BD-667F-4CA3-91D2-A2AF2B802044"));
                //filterContext.HttpContext.Session["UserInstance"] = users;
    
                //构造未登陆时的转向url
                var urlHelper = new UrlHelper(filterContext.RequestContext);
                var url = urlHelper.Action("Login", "Home");
    
                //3.返回文本执行
                var contentResult = new ContentResult
                {
                    Content = "<script>window.opener=null; window.top.location='/Home/Login';</script>"
                };
    
                //判断是否登陆
                if (filterContext.HttpContext.Session == null || filterContext.HttpContext.Session["CustomerInstance"] == null) // || !IsTimeOut()
                {
                    //1.转向操作
                    //filterContext.Result = new RedirectResult(url);
    
                    //2.执行js脚本,貌似只支持ajax请求
                    //ContentResult contentResult = new ContentResult();
                    //contentResult.Content = "alert('Hello World!');";
                    //contentResult.ContentType = "application/x-javascript";
    
                    filterContext.Result = contentResult;
                }
                //else
                //{
                //    //判断功能权限
                //    var controllerName = filterContext.RouteData.Values["controller"].ToString();
                //    var actionName = filterContext.RouteData.Values["action"].ToString();
                //    string thisRequestUrl = string.Format(",/{0}/{1},", controllerName, actionName);
                //    //Users users = App.Instance.HaveAuthorityUser ?? new Users();
    
                //    if (users != null && users.RolesId != Guid.Empty)
                //    {
                //        //非超级管理员
                //        if (users.RolesId != Guid.Parse("B22468F7-4352-4C07-9C9A-62222A67322A"))
                //        {
                //            string urlAllString = roleFeaturesRepository.GetRoleFeaturesUrlListByRoleId(users.RolesId.ToString());
                //            if (!string.IsNullOrEmpty(urlAllString) && urlAllString.IndexOf(",") > -1)
                //            {
                //                urlAllString = "," + urlAllString + ",";
                //                int index = StringHelper.GetStrCount(urlAllString, thisRequestUrl);
                //                if (index < 0)
                //                    filterContext.Result = contentResult;
                //            }
                //            else
                //                filterContext.Result = contentResult;
                //        }
                //    }
                //    else
                //        filterContext.Result = contentResult;
                //}
                //处理Action之前操作内容根据我们提供的规则来定义这部分内容
                base.OnActionExecuting(filterContext);
            }
    
            /// <summary>
            /// 执行Action之后操作
            /// </summary>
            /// <param name="filterContext"></param>
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                base.OnActionExecuted(filterContext);
            }
        }
    }

    使用方法:

    /// <summary>
            /// 购物车页面
            /// </summary>
            /// <returns></returns>
            [WebAuthenUsers]
            public ActionResult Index()
            {
                Guid userid = App.Instance.HaveAuthorityCustomer.Id;
                if (userid != new Guid())
                {
                    ViewBag.cartList = _cartsRepository.GetCartList(userid.ToString().Trim());
                }
                return View();
            }
    [WebAuthenUsers]也可以加在

    这前面,表示这个controller都需要登录验证
  • 相关阅读:
    Vue入门系列(四)之Vue事件处理
    Vue入门系列(五)Vue实例详解与生命周期
    微信为啥不能直接下载.apk安装包
    Oracle行转列SQL
    MyISAM 和InnoDB区别
    jQuery easyui datagrid数据绑定
    js调用百度地图API创建地图,搜索位置
    python tornado框架使用
    python数据库连接池
    python操作数据库
  • 原文地址:https://www.cnblogs.com/LoveQin/p/5672459.html
Copyright © 2011-2022 走看看