gpt4 book ai didi

c# - 如何在整个 ASP .NET MVC 应用程序中需要授权

转载 作者:IT王子 更新时间:2023-10-29 04:29:20 25 4
gpt4 key购买 nike

我创建了一个应用程序,其中除了启用登录的操作之外的每个操作都应该超出未登录用户的限制。

我应该在每个类(class)的标题前添加 [Authorize] 注释吗?喜欢这里:

namespace WebApplication2.Controllers {
[Authorize]
public class HomeController : Controller {




public ActionResult Index() {
return View();
}

public ActionResult About() {
ViewBag.Message = "Your application description page.";

return View();
}

public ActionResult Contact() {
ViewBag.Message = "Your contact page.";

return View();
}
}
}

或者有捷径吗?如果我想更改特定 Controller 中的一个且唯一的操作规则怎么办?

最佳答案

最简单的方法是在过滤器配置中添加 Authorize 属性以将其应用于每个 Controller 。

public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());

//Add this line
filters.Add(new AuthorizeAttribute());
}
}

另一种方法是让所有 Controller 都继承自一个基类。这是我经常做的事情,因为几乎总是有一些共享代码可供我的所有 Controller 使用:

[Authorize]
public abstract class BaseSecuredController : Controller
{
//Various methods can go here
}

现在您所有的 Controller 都应该继承这个新类,而不是从 Controller 继承:

public class MySecureController : BaseSecuredController
{
}

注意:当您需要未登录用户可以访问时,请不要忘记添加 AllowAnonymous 属性。

关于c# - 如何在整个 ASP .NET MVC 应用程序中需要授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24970955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com