2

查看 ServiceStack.UseCases 示例项目。在调用身份验证服务后,我正在尝试使用 jsonserviceclient 调用 HelloRequest 服务。无论我做什么,它似乎都失败并返回 Not Found 错误消息。有人知道我在做什么错吗?

   protected void Button1_Click(object sender, EventArgs e)
    {
        var baseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "/api";
        var client = new JsonServiceClient(baseUrl);
        client.UserName = "admin";
        client.Password = "123";
        client.SetCredentials("admin", "123");
        client.AlwaysSendBasicAuthHeader = true;
        client.Send(new HelloRequest { Name = "Mike" });
    }

服务器的服务配置如下

 public class AppHost : AppHostBase
{
    public AppHost() : base("Custom Authentication Example", typeof(AppHost).Assembly) { }

    public override void Configure(Container container)
    {
        // register storage for user sessions 
        container.Register<ICacheClient>(new MemoryCacheClient());

        // Register AuthFeature with custom user session and custom auth provider
        Plugins.Add(new AuthFeature(
            () => new CustomUserSession(), 
            new[] { new CustomCredentialsAuthProvider() }
        ));
    }
}

我真正想要的是对我遇到的以下问题的一个很好的解决方案。我有一个具有现有用户数据库和自定义身份验证过程的现有系统。我现在正在尝试使用 servicestack 将系统的功能公开为 Web 服务。我使用沼泽标准网络表单进行编程,因此 MVC 示例对我来说效果不佳。我只是在为我的特定场景寻找最佳解决方案,我可以使用 .NET 中的大多数客户对我的 web 服务的调用者进行身份验证

4

1 回答 1

1

您还需要在您尝试进行身份验证的服务器上启用基本身份验证。有关示例,请参阅SocialBootstrapApi AppHost

Plugins.Add(new AuthFeature(
    () => new CustomUserSession(), //Use your own typed Custom UserSession type
    new IAuthProvider[] {
        new BasicAuthProvider(),                    //Sign-in with Basic Auth
    }));
于 2013-02-01T15:47:24.817 回答