我想要求所有用户在进入需要身份验证的网站的任何部分之前填写一些其他信息。
如果可能我想抓住[Authorize]
注释,但忽略任何@User.IsInRole("something")
我可以在Global.asax
或?
我只是希望获取注释,因为我对.IsInRole()
的唯一用途是向他们显示不同的信息,我想要那里的链接,以便他们实际上看到了获取注释所需的内容。希望这是有道理的(有点累)。
答案 0 :(得分:0)
您可以覆盖AuthorizeAttribute
本身;这将允许您访问在标记为OnActionExecuting()
的操作被调用时被触发的[Authorize]
方法。从那里你可以添加你自己的auth逻辑或调用基本方法,然后如果额外的数据需要填写,则重定向到相应的错误或表单。你应该能够将他们的原始请求作为返回URL查询参数,以便一旦额外的数据得到处理,用户可以继续到他们去的任何地方。然后,您需要使用此自定义属性替换[Authorize]
的所有用途,但查找和替换应该处理此问题。