我在我的asp.net核心2.0应用程序中使用基于声明的授权,而不是在整个应用程序中硬编码声明名,而是考虑在注入配置对象(appsettings.json)中设置它们。
但在我跳下那条路之前,我很好奇是否有什么需要注意的性能问题?
就像这样:
var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == _config.GetSection("ClaimNames")["BasicMembership"]);而不是这样的:
var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == "basicMembership");在这一点上,我有4-5声称,我正在添加/删除用户在我的应用程序的各个点。将名称滚动到appsettings的原因是为了确保我没有输入声明名,如果将来出于任何原因,我可以更容易地更改它们。
但是,如果_config.GetSection("section")["key"]);有一个显著的性能成功,我宁愿不。我倾向于不会受到明显的打击,但我想确定一下。
提前感谢!
发布于 2017-09-27 14:16:59
您的_config是IConfiguration对象吗?
通常,您在应用程序启动时构建配置对象,并且将这些信息加载到内存中,所以是的,性能差异最多可以忽略不计。
但正如其他人所说,如果性能是一个问题,没有比自己测试它更好的方法了。
https://stackoverflow.com/questions/46449258
复制相似问题