May*_*ayo 5 c# asp.net-mvc lambda attributes
我有一个CustomAuthorize
属性,用于检查用户是否可以访问功能(用户或角色可以与一组分层函数中的项相关联).
对于给定的行动方法......
[CustomAuthorize("Security.Admin.ManageWidgets.Update")]
Run Code Online (Sandbox Code Playgroud)
这有效,但我担心安全对象的更改可能会导致在运行时才会检测到的问题.我意识到我可以编写单元测试来减轻这种风险,但我想知道是否可以在编译时检查属性参数.我也喜欢Intellisense帮我输入这个表达式.
理想情况下,我可以传递一个lambda表达式.
[CustomAuthorize(i => i.Admin.ManageWidgets.Update)]
Run Code Online (Sandbox Code Playgroud)
不幸的是,这目前无法实现(Microsoft提供的其他信息).
我还尝试封装表达式,希望它被评估,然后作为字符串传递给属性,但是也无法使用相同的错误进行编译(Expression不能包含匿名方法或lambda表达式).
[CustomAuthorize(LambdaToString(i => i.Admin.ManageWidgets.Update))]
Run Code Online (Sandbox Code Playgroud)
如何为自定义属性参数添加一些设计时/构建时支持?
归档时间: |
|
查看次数: |
1168 次 |
最近记录: |