Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从内部调用安全ServiceStack服务_C#_.net_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Httpserver - Fatal编程技术网 servicestack,httpserver,C#,.net,servicestack,Httpserver" /> servicestack,httpserver,C#,.net,servicestack,Httpserver" />

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 { ... });