C# 如何使用匿名用户请求控制器调用?

C# 如何使用匿名用户请求控制器调用?,c#,.net,authorization,blazor,C#,.net,Authorization,Blazor,我正在使用Blazor WebAssemlby进行身份验证。当我通过登录验证时,一切正常。但当我没有登录(匿名)时,我想将请求发布到某个控制器(以获取一些数据),但它不起作用 如何为匿名用户使用国家/地区控制器 这是我的密码 视图: 见: 您需要在program.cs文件中添加如下代码: builder.Services.AddHttpClient("ServerAPI.NoAuthenticationClient", client => client.BaseAdd

我正在使用Blazor WebAssemlby进行身份验证。当我通过登录验证时,一切正常。但当我没有登录(匿名)时,我想将请求发布到某个控制器(以获取一些数据),但它不起作用

如何为匿名用户使用国家/地区控制器

这是我的密码

视图:

见:

您需要在program.cs文件中添加如下代码:

builder.Services.AddHttpClient("ServerAPI.NoAuthenticationClient", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress));
然后像这样消费:

@inject IHttpClientFactory ClientFactory

protected override async Task OnInitializedAsync()
{
    // Create a httpClient to use for non-authenticated calls
    NoAuthenticationClient =
         ClientFactory.CreateClient(
             "ServerAPI.NoAuthenticationClient");

    // Make the non-authenticated call
    await NoAuthenticationClient.PostAsJsonAsync(
            "SyncfusionHelpDesk", objHelpDeskTicket);
}
见:

您需要在program.cs文件中添加如下代码:

builder.Services.AddHttpClient("ServerAPI.NoAuthenticationClient", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress));
然后像这样消费:

@inject IHttpClientFactory ClientFactory

protected override async Task OnInitializedAsync()
{
    // Create a httpClient to use for non-authenticated calls
    NoAuthenticationClient =
         ClientFactory.CreateClient(
             "ServerAPI.NoAuthenticationClient");

    // Make the non-authenticated call
    await NoAuthenticationClient.PostAsJsonAsync(
            "SyncfusionHelpDesk", objHelpDeskTicket);
}

异名应该这样做。发生了什么事?没有。它显示的视图,但当涉及到请求时,它不会到达控制器。您在浏览器的“网络”选项卡中看到的响应代码是什么?AllowAnonymous应该这样做。发生了什么事?没有。它显示的视图,但当涉及请求时,它不会到达控制器。您在浏览器的“网络”选项卡中看到了什么响应代码?谢谢。这就是问题所在。我不知道您必须单独处理未经验证或未经授权的web API请求。谢谢。这就是问题所在。我不知道您必须单独处理未经验证或未经授权的web API请求。
@inject IHttpClientFactory ClientFactory

protected override async Task OnInitializedAsync()
{
    // Create a httpClient to use for non-authenticated calls
    NoAuthenticationClient =
         ClientFactory.CreateClient(
             "ServerAPI.NoAuthenticationClient");

    // Make the non-authenticated call
    await NoAuthenticationClient.PostAsJsonAsync(
            "SyncfusionHelpDesk", objHelpDeskTicket);
}