这里是我的情况:自定义的IIdentity和从属性将数据传递给控制器
我已经成功地创建了我传递给的GenericPrincipal一个自定义的IIdentity。当我在我的控制器中访问IIdentity时,我必须抛出IIdentity以使用自定义属性。例如:
public ActionResult Test()
{
MyCustomIdentity identity = (MyCustomIdentity)User.Identity;
int userID = identity.UserID;
...etc...
}
因为我需要为几乎每一个动作做到这一点铸造我想在ActionFilterAttribute来包装这个功能。我不能在控制器的构造函数中执行它,因为上下文尚未初始化。我的想法是让ActionFilterAttribute在控制器上填充一个私有属性,我可以在每个操作方法中使用它。例如:
public class TestController : Controller
{
private MyCustomIdentity identity;
[CastCustomIdentity]
public ActionResult()
{
int userID = identity.UserID;
...etc...
}
}
问:这是可能的吗?有更好的解决方案吗?我绞尽脑汁,试图弄清楚如何将属性中填充的公共属性传递给控制器,但我无法获取它。