1

我用 C# 在 ASP.NET MVC4 中编写了一个 webApp。我使用 FormsAuthentication.SetAuthCookie(username, true); 登录用户 方法。

现在我想检查每个控制器的登录状态。如果没有人登录,用户应该被重定向到登录控制器视图。我不想手动将这段代码添加到每个控制器中。

任何人的想法,如何做到这一点?

4

1 回答 1

2

使用 [AuthorizeAttribute] 来实现您所需要的。例如:

public class AccountController : Controller
{

     [Authorize]
     ActionResult ActionRequiringAuthorization()...
     ....

     [AllowAnonymous] //Will allow both, authenticated and non-authenticated requests
     ActionResult PublicAction() ...
}

如果用户不再通过身份验证,则在尝试执行任何带有 Authorize 属性的操作时,他将被重定向到登录页面。

您可以装饰整个控制器以将相同的属性应用于所有操作,如下所示:

 [Authorize]
 public class AccountController : Controller
于 2013-02-26T15:48:51.257 回答