我的主要服务使用[Authenticate]
属性进行修饰,因此任何连接尝试(这都很重要)都需要客户端身份验证。
[Authenticate]
public class ServerEventsService : Service
{
...
}
有没有办法从服务器内调用服务方法(比如在self \ web主机类中)并绕过身份验证?据我所知,ServiceStack中没有[AllowAnonymous]
的东西。如果无法绕过身份验证过程 - 如何验证此类请求?这里唯一的方法是在我的服务器主机中创建另一个ServiceClient吗?
答案 0 :(得分:1)
是的,你可以直接调用ServiceStack Services,就像任何其他依赖项一样,从IOC解析并直接调用它:
using (var service = base.ResolveService<ServerEventsService>())
{
var response = service.Post(new Request { ... });
}
另一种API是执行请求DTO,ServiceStack将查找并执行使用提供的请求DTO定义的相应Post
或Any
服务:
base.ExecuteRequest(new Request { ... });
同样相关,请参阅有关能够impersonate users for Internal Requests而无需用户密码的文档。