[RequireRole("admin")]
和 [ValidateHasRole("admin")]
等属性有什么区别?
https://docs.servicestack.net/authentication-and-authorization#requiredrole-and-requiredpermission-attributes https://docs.servicestack.net/declarative-validation#type-validators
它在文档中确实说:
ServiceStack 包含所有授权过滤器属性的内置类型验证器属性,但由于它们与任何实现解耦,因此可以在请求 DTO 上安全地进行注释,而不需要任何实现依赖项。
那些是哪些依赖项?据我了解,[RequireRole("admin")]
可以放在服务上或直接放在 DTO 上。
最佳答案
[RequireRole]
由 RequiredRoleAttribute.cs 实现ServiceStack.dll
中的请求过滤器属性。
您的ServiceModel project包含您的 API DTO 不应该有任何具体的实现程序集,例如 ServiceStack.dll
,因此如果您想使用身份验证属性注释您的请求 DTO,您应该使用 declarative fluent validation [Vaidate*]
而不是存在于 impl-free ServiceStack.Interfaces.dll
中 - 即您的服务模型 (DTO) 应该引用的唯一 ServiceStack.dll。
关于servicestack - ValidateHasRole 与 RequireRole 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68815953/