博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC判断用是否登录了平台
阅读量:4650 次
发布时间:2019-06-09

本文共 3930 字,大约阅读时间需要 13 分钟。

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

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

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    {        ///         /// 执行Action之前操作        ///         ///         public override void OnActionExecuting(ActionExecutingContext filterContext)        {            //BaseServiceContents
_baseContent = new BaseServiceContents
(); //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 = "
" }; //判断是否登陆 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); } ///
/// 执行Action之后操作 /// ///
public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); } }}

使用方法:

///         /// 购物车页面        ///         /// 
[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

你可能感兴趣的文章