Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
全新Blazor Webassembly模板CLI v5.0.100产生了;“未经授权”;_Blazor_Blazor Webassembly - Fatal编程技术网

全新Blazor Webassembly模板CLI v5.0.100产生了;“未经授权”;

全新Blazor Webassembly模板CLI v5.0.100产生了;“未经授权”;,blazor,blazor-webassembly,Blazor,Blazor Webassembly,很抱歉提出这个新问题。 我真的需要了解这个新模板的解决方法是什么 重现错误: Visual Studio,全新Blazor应用程序,名为“Demo3” .NET 5.0,Blazor WebAssembly应用程序,模板“CLI v5.0.100” ASP.NET核心托管,https 身份验证,单域,读取目录数据 运行创建 在以前的模板上,我已经这样做了数百次。但是这个“新”模板,立即产生了一个我无法理解的错误 详细信息: 正常登录 单击“获取数据”(天气预报) 我收到了这个错误信息 关键词:4

很抱歉提出这个新问题。
我真的需要了解这个新模板的解决方法是什么

重现错误:
Visual Studio,全新Blazor应用程序,名为“Demo3”

.NET 5.0,Blazor WebAssembly应用程序,模板“CLI v5.0.100”
ASP.NET核心托管,https
身份验证,单域,读取目录数据

运行创建

在以前的模板上,我已经这样做了数百次。但是这个“新”模板,立即产生了一个我无法理解的错误

详细信息:
正常登录
单击“获取数据”(天气预报)
我收到了这个错误信息

关键词:401和未授权。
我猜未经授权的,是重要的信息

info: System.Net.Http.HttpClient.Demo3.ServerAPI.ClientHandler[100]
      Sending HTTP request GET https://localhost:44345/WeatherForecast
WeatherForecast:1 Failed to load resource: the server responded with a status of 401 ()
blazor.webassembly.js:1 info: System.Net.Http.HttpClient.Demo3.ServerAPI.ClientHandler[101]
      Received HTTP response after 1272.7899ms - Unauthorized
blazor.webassembly.js:1 info: System.Net.Http.HttpClient.Demo3.ServerAPI.LogicalHandler[101]
      End processing HTTP request after 1340.08ms - Unauthorized
blazor.webassembly.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
      Unhandled exception rendering component: Response status code does not indicate success: 401 (Unauthorized).
System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
  at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode () <0x337bf70 + 0x00052> in <filename unknown>:0 
  at System.Net.Http.Json.HttpClientJsonExtensions.GetFromJsonAsyncCore[T] (System.Threading.Tasks.Task`1[TResult] taskResponse, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken) <0x32c6740 + 0x000f4> in <filename unknown>:0 
  at Demo3.Client.Pages.FetchData.OnInitializedAsync () [0x0003c] in D:\repos\nameofrepo\src\Demo3\Demo3\Client\Pages\FetchData.razor:48 
  at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () <0x2c764b0 + 0x0013a> in <filename unknown>:0 
  at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask (System.Threading.Tasks.Task taskToHandle) <0x2f401a8 + 0x000b6> in <filename unknown>:0 
在响应标题中:

www-authenticate: Bearer error="invalid_token", error_description="The audience 'api://blazorapp1_server' is invalid"
但与AADSTS7000218或丢失的客户机密无关


仍然没有放弃这个。。。我会回来的…

我在项目中通过向服务器的appsettings.json文件中添加“观众”值来解决此错误

  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "<domain>",
    "TenantId": "<guid>",
    "ClientId": "api://<apiname>",
    "CallbackPath": "/signin-oidc",
    "Audience": "api://blazorapp1_server"
  },
“AzureAd”:{
“实例”:https://login.microsoftonline.com/",
“域”:“,
“租户”:“,
“客户端ID”:“api://”,
“回调路径”:“/登录oidc”,
“观众”:api://blazorapp1_server"
},

看起来观众验证是区分大小写的,如果ClientId包含大写字母,并且在承载令牌中传递的观众值都是小写的,则验证失败。在所有小写字母中添加观众价值为我解决了这个问题。

非常感谢!我也有同样的问题,你的帖子是解决这个问题的关键。 要补充一点: 访问群体的值是小写的apiname:

"Audience": "api://<apiname in lowercase>"
“受众”:“api://

服务器的平台必须是Web

我还必须调整客户端的应用程序注册

客户端的平台必须是SPA,并且必须取消选择这两种令牌类型:

我想插话说,我今天真的很挣扎,Sascha Stops的回答在钱上是对的。非常感谢

有一点我想指出的是,随着.NET 5的发布和Visual Studio 2019的最新更新,现在有一个Blazor WebAssembly模板用于工作或学校帐户(即Azure广告验证)。我用这个模板创建了我的应用程序,并假设它可以正确设置所有内容。它没有


客户端应用程序注册将重定向URI设置为Web,而不是SPA。这是我遇到的第一个问题,在做了一些研究后不得不手动更改。第二个问题是这里讨论的受众设置。我希望Microsoft尽快清除模板中的这些错误,因为我确信会有很多错误使用过开发人员。

您确实通知过AzAD您的应用程序?是的,模板同时注册了.Demo3(Blazor Webassembly)和Demo3_服务器(Rest Api)。尝试了各种更改,但没有成功。还为服务器应用授予了wasm应用权限…在以前的应用中,我对v1和v2身份验证点有问题,这是我目前的最佳任务。值得一提的是,我可以复制此任务。这不是我的区域,但响应包含:AADSTS7000218:请求正文必须包含以下参数:“client_as”“sertion”或“client_secret”。这似乎是一个常见的错误。我设置了一个新项目,但找不到AADSTS7000218错误。
"Audience": "api://<apiname in lowercase>"