我的一些控制器操作需要对用户进行身份验证。这些操作使用自定义[Authorize]
属性进行标记。在幕后,一个自定义会员提供者做了一些魔术,其中将一些临时数据设置到公共线程中。
在需要身份验证的每个操作结束时,都需要调用OnActionExecuted()
过滤器来清理线程。这是通过另一个名为[CleanupContext]
.
所以我的动作是这样的:
[Authorize]
[CleanupContext]
public ViewResult Action()
{
...
}
因为这两个总是一起使用,因为我很懒,因为我担心有一天某个开发人员可能会忘记放置一个或另一个,我们最终会出现一些奇怪的行为:有没有办法将它们组合成一个属性?
[AuthorizeAndCleanup]
public ViewResult Action()
{
// Aaah, if only it could look like this :D
}
非常感谢!