C# 从内部调用安全ServiceStack服务
我的主服务使用C# 从内部调用安全ServiceStack服务,c#,.net,
servicestack,httpserver,C#,.net,
servicestack,Httpserver,我的主服务使用[Authenticate]属性进行修饰,因此任何连接尝试(这很重要)都需要客户端身份验证 [Authenticate] public class ServerEventsService : Service { ... } 有没有办法从服务器内部调用服务方法(如在self\web主机类中)并绕过身份验证?据我所知,ServiceStack中没有[AllowAnonymous]东西。如果无法绕过身份验证过程,如何对此类请求进行身份验证?这里唯一的方法是在我的服务器主机中创建另一个S
[Authenticate]
属性进行修饰,因此任何连接尝试(这很重要)都需要客户端身份验证
[Authenticate]
public class ServerEventsService : Service
{
...
}
有没有办法从服务器内部调用服务方法(如在self\web主机类中)并绕过身份验证?据我所知,ServiceStack中没有
[AllowAnonymous]
东西。如果无法绕过身份验证过程,如何对此类请求进行身份验证?这里唯一的方法是在我的服务器主机中创建另一个ServiceClient吗?是的,您可以像调用任何其他依赖项一样直接调用ServiceStack服务,方法是从IOC解析它,并使用以下命令直接调用它:
using (var service = base.ResolveService<ServerEventsService>())
{
var response = service.Post(new Request { ... });
}
同样相关的,请参阅关于无需用户密码即可访问的文档。因此我的服务将在内部发布并验证此用户?@HardLuck否它只是通过验证直接调用服务。只有显示了如何模拟用户,但仅适用于需要配置
SkipPasswordVerificationForInProcessRequests
的CredentialAuthProvider
,是否有方法强制验证内部请求?看起来任何内部请求都是在没有[Authenticate]筛选器参与的情况下提供的,因此,尽管有“Authenticate”和“Restrict”,任何方法都可以在内部调用filters@HardLuck没有内部请求不执行请求过滤器,它们是直接调用的。谢谢,我只需要知道这些
base.ExecuteRequest(new Request { ... });