我创建了一个自定义AuthorizeAttribute,用于验证在HTTP标头内发送的某些OAuth凭据。我正在使用其中一些凭据来确定谁在发出请求。一旦我在AuthorizeAttribute中解析这些信息,有没有办法将其传递出来,以便可以将数据分配给Controller的实例变量?然后我的控制器中的任何地方都会有请求方的ID。
答案 0 :(得分:12)
原始回答
您应该可以在过滤器中执行此操作
filterContext.HttpContext.Items["test"] = "foo";
然后在你的行动中
_yourVariable = HttpContext.Items["test"];
您可能希望使用比"test"
更独特的密钥,但这就是主意。
编辑我们在操作中执行此操作有两个原因而不是构造函数:
替代解决方案
OAuthController : Controller
OnAuthorization
OAuthController.OnAuthorization
protected
protected object myAuthData
字段(即OAuthController
)
OAuthController
而不是Controller
myAuthData
。