大家好,又见面了,我是你们的朋友全栈君。
实现功能:当程序未登录时不能通过URL访问其他页面。
具体:未登录时访问其他页面会自动跳转到登陆页面。
1.创建MVC项目
不过多累述。
2.创建过滤器
如图可创建一个文件夹,把拦过滤器类收录在内。
过滤器ActionFilter.cs代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace ContosoUniversity.Helper
{
public class ActionFilter : ActionFilterAttribute //继承过滤器类
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//判断session是否为空,为空则跳转到登入页面
if (filterContext.HttpContext.Session["UserName"]==null)
{
filterContext.HttpContext.Response.Redirect("Login/Index"); //参数为自己写的登入页面的url
}
}
}
}
3.设置Session
如图在自己登入成功的代码段中设置参数。
4.设置过滤器
在自己Controller层中的每一个方法上添加 [Helper.ActionFilter] 即可。
自此未登录拦截已经完成了。可自己运行程序通过url访问其他页面进行判断。
5.完善功能
上面功能还是不够完善的,要再添加一个退出登录完善程序。
在自己的登录代码中添加一个新方法
代码如下:
//退出登录
public ActionResult Exits()
{
Session["UserName"] = null;
return RedirectToAction("Index"); //重新运行导向其他方法,此处为导向首页
}
在主页面的视图中添加以下代码,如图所示
<td>
@Html.ActionLink("退出登入", "Exits", "Login")
</td>
我的程序页面如图:
点击退出登录后,再不能通过url访问其他页面。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158177.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...