-1

如果用户输入一个 URL,那么我的应用程序检查用户会话是否过期以及用户是否登录,如果会话过期或用户未登录,那么我的应用程序将重定向到“登录”-控制器的“索引”-方法。(我每个控制器中有 4 个控制器和 8-9 个动作方法,请建议我一个方便/简单的方法来做到这一点)我该怎么做?

4

2 回答 2

1

使用Authorize需要用户登录的操作的属性。

例子:

[Authorize]
public ActionResult DoSomething()
{
   //code here...
}

未经授权的用户将被重定向到您在 Web.config 中设置的登录页面。

于 2013-10-01T12:02:15.343 回答
0

尝试这个

//user not logged in
if (Session["User"] == null)
    {
    FormsAuthentication.SignOut();
    //send the user to login page with return URL
    filterContext.Result =
        new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary {{ "controller", "Login" },
        { "action", "Index" },
        { "returnUrl",    filterContext.HttpContext.Request.RawUrl } });
    return;
}

此代码将在您的重定向 URL 中添加您的最后访问 url,因此您可以在登录后返回同一页面。

于 2013-10-01T12:02:43.907 回答