我正在尝试利用servicestack的身份验证和授权功能,这样我就不需要用它来污染我的服务代码,这将导致更清洁的测试等。
在我的应用程序中,用户有权在特定上下文中执行某项操作。
即,用户只能查看其产品集中的产品。
为此,我考虑过使用名为canView的权限属性装饰productViewRequest dto,然后创建我自己的IAuthSession实现,以检查用户是否在其允许的范围内请求产品。
这会是一个体面的方法还是我在错误的树上吠叫?
假设这是一种正确的方法,如何在会话实现的HasPermission调用中获取上下文(即productViewRequest对象)?
谢谢你的帮助
首先,我将检查ServiceStack内置的身份验证选项https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization
如果这不符合您的要求,则请求过滤器属性将使您能够访问请求上下文。
public class CanViewAttribute : RequestFilterAttribute {
private readonly string permission;
public CanViewAttribute(string permission) {
this.permission = permission;
}
public override void Execute(IHttpRequest req, IHttpResponse res, object responseDto) {
// todo: check permission
if (!hasPermission) {
res.StatusCode = (int)HttpStatusCode.Forbidden;
res.EndRequest();
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句