我有这样一个场景:
搜索控件,我们的数据录入人员在其中输入用户 ID 并搜索他们的详细信息,并浏览与该用户相关的不同页面。
所以现在在我的 MVC 应用程序中,我正在设置一个 session 来维护 session 变量中的用户 ID。在页面上的每个方法(如编辑、更新等)上,我都在检查用户 session 是否存在。我可以在全局范围内这样做,这样我就不需要每次都检查了吗?就像在 global.asax 中一样
protected void Application_Start()
{
}
或编写自定义方法来检查 session 。
请有人能帮我解决这个问题。
谢谢
最佳答案
在 MVC 应用程序中,您可以创建自己的继承自 AuthorizeAttribute 的属性, 然后在该属性中您可以检查您的 session 。你可以把它放在需要的 Controller 上,或者放在 GlobalFilters 集合中。
更新1
下面是这种逻辑的一个例子
public class SessionAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return httpContext.Session["InsuredKey"] != null;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/some/error");
}
}
然后你可以把它放在需要的 Controller 下,比如
[SessionAuthorize]
public class SomeController
{
}
关于c# - 在页面上进行任何事件之前,如何检查 MVC 中的 session 变量是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20787797/