Nic*_*sen 54 asp.net-mvc authorization action-filter asp.net-mvc-3
使用ASP.NET MVC我正在创建一个自定义Authorize属性来处理一些自定义授权逻辑.我已经看了很多例子,这很简单,但我的问题是哪种方法最好覆盖,AuthorizeCore或OnAuthorization?我见过许多覆盖其中一个的例子.有区别吗?
Bon*_*nyT 77
线索在返回类型中:
AuthorizeCore
返回一个布尔值 - 它是决策代码.这应该仅限于查看用户的身份并测试他们所处的角色等.基本上它应该回答这个问题:
Do I want this user to proceed?
它不应该"在一边"执行任何额外的活动.
OnAuthorize
返回void - 这是您放置此时需要发生的任何功能的地方.例如,写入日志,在会话中存储一些数据等.
Eri*_*sch 17
您应该放置必须运行的任何代码,无论用户是第一次获得授权,还是使用了缓存授权AuthorizeCore
.
如果你看一下源代码,你可以看到,AuthorizeCore
被双方称为OnAuthorize
和OnCacheAuthorization
.这允许缓存授权但仍允许某些操作并做出关于授权的实际决策.
如果需要AuthorizationContext中的某些内容,则可以创建一个属性来保存信息,然后在AuthorizeCore方法中访问该信息.
归档时间: |
|
查看次数: |
18028 次 |
最近记录: |