MVC项目开发中那些用到的知识点(登录权限认证)
话说从开始接触MVC到现在也有一段时间了,记得好像是从2012年8月初开始做项目的。就记录一下自己所用到的且认为重要的知识点吧。
首先做的便是一个登录,那么就用到了登录权限认证:
public class UserAuthentication : AuthorizeAttribute { public UserToUrlEnum UserToUrlEnum { get; set; } public UserAuthentication() { this.UserToUrlEnum = UserToUrlEnum.Login; } /// <summary> /// 视图响应前执行验证,查看当前用户是否有效 /// </summary> public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.HttpContext.Session.IsNewSession && string.IsNullOrEmpty(HttpContext.Current.User.Identity.Name)) { switch (this.UserToUrlEnum) { case UserToUrlEnum.Login: { HttpContext.Current.Response.Redirect("~/Account/Login" , true); } break; } } } }
此类首先有继承AuthorizeAttribute,重载OnAuthorization此方法,以便与在每次触发Action之前调用此方法,检验是否已经登录以及用户是否已经过期。如果过期或者没登录,那么就会自动返回到登录页面,要求登录。
刚刚说到了每次触发Action之前调用OnAuthorization此方法,那么如何触发呢:
[UserAuthentication] public ActionResult RoleManagerPage() { return View(); }
只需要在要检验的Action前加上该属性标识即可。也可以加到整个控制器上面。代码如下
[UserAuthentication] public class SystemManagerController : Controller
那么此控制器下的每个Action在执行的时候都会做用户登录权限的认证。
用户如果没有登录,而是通过Url直接访问,那么就会跳转到登录页面,要求登录;或者用户长时间无操作,那么之前登录的用户将会过期,同样会跳转到登录页面。
当然还要在配置文件System.Web节点下添加
<authentication mode="Forms"> <forms loginUrl="~/Account/Login" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="~/Home/Index" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/> </authentication>
分类:
Asp.Net MVC
标签:
MVC项目开发中那些用到的知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构