我的主服务是用[Authenticate]属性修饰的,因此任何连接尝试(这很重要)都需要客户端身份验证。
[Authenticate]
public class ServerEventsService : Service
{
...
}有任何方法从服务器内部调用服务方法(比如在self\web主机类中)并绕过身份验证吗?据我所知,[AllowAnonymous]在ServiceStack中是没有的。如果无法绕过身份验证过程--如何对此类请求进行身份验证?这里唯一的方法是在我的服务器主机中创建另一个ServiceClient吗?
发布于 2016-02-22 16:17:11
是的,您可以像任何其他依赖项一样直接调用ServiceStack服务,方法是从IOC解析它,然后用以下方法直接调用它:
using (var service = base.ResolveService<ServerEventsService>())
{
var response = service.Post(new Request { ... });
}另一种API是执行请求DTO,ServiceStack将查找并执行使用提供的请求DTO定义的适当的Post或Any服务:
base.ExecuteRequest(new Request { ... });也与此相关,请参阅文档,使其能够在不需要用户密码的情况下实现模拟内部请求的用户。
https://stackoverflow.com/questions/35550740
复制相似问题