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都需要登录验证
原文地址:https://www.cnblogs.com/LoveQin/p/5672459.html