1

如果你们认为这是一个愚蠢的问题,我很抱歉。我准备好接受任何批评,因为我认为我的无能。我是 C# 的新手,我一生都找不到任何关于此的参考资料。这个“[Authorize]”对代码中的类做了什么?我知道 AccountController 是从 Controller 继承的。我只是不明白 Authorize 在括号中是做什么的。我假设它也从 System.Web.Mvc.AuthorizeAttribute 继承代码,但不确定,因为当放置在类或方法之前时,我找不到括号在 C# 中的含义。所以说清楚我的问题,我在问,在类或函数之前将任何内容放在括号中的目的是什么?是不是继承了什么?如果是这样,为什么不像继承控制器那样使用冒号呢?如果有人可以发送链接参考也很好..任何帮助表示赞赏..

[Authorize]
public class AccountController : Controller
{

我注意到下面这种方法的用法相同。它正在使用 [AllowAnonymous] 代替..

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    ViewBag.ReturnUrl = returnUrl;
    return View();
}
4

1 回答 1

6

括号中的内容,例如 [Authorize] 称为属性。它们是可以应用于类、方法和属性的元数据(取决于您所谈论的属性)。

http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx

与您的代码交互的代码可以使用反射来查看已应用哪些属性,以及哪些参数(如果有)与每个属性相关联。

在你提到的具体例子中,

[Authorize]

MVC 运行时检查属性以帮助控制对控制器的访问

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.108).aspx

[AllowAnonymous]

属性指定控制器的特定登录方法不需要授权。

http://msdn.microsoft.com/en-us/library/system.web.mvc.allowanonymousattribute(v=vs.108).aspx

于 2012-12-04T00:29:14.587 回答