问题标签 [blazor-webassembly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 令牌在 Blazor WebAssembly 中过期时无法捕获 CosmosException
我正在使用带有 Blazor WebAssembly(客户端)的 Azure CosmosDB。
我想在连接令牌过期时捕获 CosmosException,但没有得到 cosmos 异常,(发现空异常)
我还在控制台应用程序中尝试了相同的代码,因为我能够捕获显示令牌已过期的 cosmos 异常。
代码示例:
javascript - Blazor RenderTreeBuilder 构建器调整大小
我试图将“resize”事件监听器绑定到我的组件。我不知道为什么,但它不适合我。
public event Action SizeChangedAction;
builder.AddAttribute(5, "resize", SizeChangedAction);
OnMouseUp OnClick 一切正常。
builder.AddAttribute(GetSequenceIndex(), "onmouseup", EventCallback.Factory.Create(component, component.OnMouseUp.InvokeAsync));
有人知道如何让它工作吗?
c# - Blazor 无法连接到 ASP.NET Core WebApi (CORS)
我有一个在本地 IP 上运行的https://192.168.188.31:44302
带有 Web API 端点的 ASP.NET Core 服务器。我可以使用 VS Code REST Client 连接到所述服务器。现在我想通过在https://192.168.188.31:5555
.
我的 Blozor 代码:
当我现在触发时LoginSubmit
,我在 Chrome 和 Firefox 的开发者控制台中收到以下错误消息:login:1 Access to fetch at 'https://192.168.188.31:44302/user/authenticate' from origin 'https://192.168.188.31:5555' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
我是 Web 开发的新手,发现您必须在服务器端 ASP.NET Core 项目上启用 CORS,所以我扩展startup.cs
了
但我仍然收到上述错误消息。我在配置 CORS 时做错了吗?为什么它与 VS Code REST 客户端按预期工作,我如何在 Blazor WASM 应用程序中进行错误调用?
asp.net-core - 在 WebAssembly 中触发登录操作时发送附加查询字符串
我正在使用最新的 Blazor WebAssembly 3.2.0 构建一个 webassembly 应用程序。我正在为身份提供者使用 Auth0,并且在触发登录操作时,我需要传递其他参数(电子邮件地址)以及 OidcProviderOptions 中定义的所需参数。
有没有办法添加这个附加字段,以便它与现有的查询字符串参数(如 returnUrl)一起进入身份提供者?
这个想法是身份提供者将读取这个额外的查询(电子邮件地址)并在生成登录屏幕时填充用户 ID 字段。我正在使用以下扩展程序来注册提供程序
asp.net-core - 使用 Blazor Web Assembly 和 Identity Server 4 的登录错误
我按照微软的 Blazor WebAssembly 独立应用程序教程进行操作。我正在使用 Identity Server 4 以及为登录等而安装的 UI,并且能够查看众所周知的页面。我假设我已经准备好从 blazor 应用程序进行标准登录的一切准备就绪,但我从未进入 Identity Server 的登录页面。相反,当我点击登录链接时,Blazor 应用程序会返回此错误消息:
尝试登录时出错:“无效响应内容类型:文本/html,来自 URL:https:login.microsoftonline.com/.well-known/openid-configuration”
我不确定为什么会发生这种情况,而且我不知道为什么 url 指向 microsoftonline.com。我觉得我在这里错过了一个明显的步骤。我错过了什么?
Blazor 启动设置:
Blazor 应用设置:
Blazor 主要方法:
身份服务器启动设置:
身份服务器配置:
c# - SignalR C# 客户端 Hubconnection.On 未触发
我有一个带有 signalR 的 ASPNet.Core WebApi。我有使用 webAPI 的 angular 应用程序,我想用 Blazor Webassembly 应用程序替换它。我在 Blazor 应用程序中遇到 signalR 问题。
我创建了一个 hubconnection,设置它,当服务器发送数据时,Hubconnection.On 方法没有被调用。这是我的代码:
在网络选项卡中,我看到连接正常,我收到了新数据,但是 hubconnection.On 中的方法没有被触发。我仔细检查了方法名称,它是相同的。在 Angular 应用程序中,它工作正常,并且随着数据从服务器发送,服务器代码没有任何问题。
我使用 Fluxor 进行状态管理,并在 'On' 方法中触发了一个操作,为了简单起见,我只是用单个 Console.WriteLine 替换了它。
编辑:添加服务器代码,并收到消息这是服务器代码,更改帐户时会调用“AccountsChanged”:
这是我收到的消息(我从 Postman 发出请求),从网络选项卡复制(为了简单起见,我删除了帐户的其他属性):
blazor-webassembly - Blazor WebAssembly 身份验证
我正在学习 blazor,并且在验证身份验证方面遇到了一些困难。我有一个托管的 .net core web api 并希望将 blazor web 程序集连接到它,但我发现的所有教程都使用它托管在一个包中的 asp.net core 主机中。像这样在同一台机器上托管时,身份验证的安全性如何?
blazor - Blazor 对象序列化被截断
我已经很久没有使用 Blazor 编程了,并且遇到了一些序列化问题。我在同一个解决方案中有一个服务器端 Blazor 应用程序和一个客户端。我有一个服务器端控制器,它发送一个 ID,然后检索对象的数据,构建对象,然后将对象返回给客户端。该物体相当大,但最多只有 5 层深。大部分对象被返回,但其余的被截断。我在 MVC 中遇到过类似的问题,并且能够通过更改 web.config 文件中的 maxBufferSize 和 maxMessageSize 来解决它。由于没有 web.config 文件,我该如何以及在哪里进行更改?序列化内置于 JASON
服务器端看起来像
客户端看起来像......
blazor - 使用 Blazor 客户端 (WebAssembly) 调整图像大小
我有一个需要上传照片的 Blazor (webAssembly) 应用程序。其中大多数只是不需要相机/手机拍摄的 2+mb 大小的文档图片。在测试中,我可以轻松地将文件大小减小到 ~100kb 而不会出现问题。我想在上传到 API 进行处理之前调整这些图像的大小,但由于我使用的是 blazor webassembly,所以我无法找出处理这个问题的最有效方法。我只需要一些简单的东西,但由于 System.Drawing 不支持调整大小或其他解决方案在服务器端工作,因此寻求任何指导。
谢谢
amazon-cognito - 如何将 OpenID 身份验证从 Blazor WebAssembly 传递到 .NET Core WebApi 后端,两者都使用 Cognito 作为 OpenID 提供程序?
技术目标:
- 客户端:Blazor WebAssembly
- 后端: .NET Core 3.1 WebApi on Lambda (AWS) via ApiGateway (/{proxy+})
- 身份验证:AWS Cognito
后端:
- 我有一个 .NET Core Lambda 函数,可以通过 ApiGateway /{proxy+} => Lambda 通过 AWS ApiGateway (RestApi) 访问。这部署和工作正常。我已将 WebApi 配置为使用 AWS Cognito 作为其身份验证方法(下面的 Startup..cs:ConfigureServices 代码)。
- 我可以在我的路由上成功使用 [Authorize] 属性,当我直接在浏览器中使用 [Authorize] 访问路由时,我会被发送到 Cognito 签名页面,我可以登录并被发送回我的 Api 和调用执行。效果很好。
Startup.cs:配置服务
客户端:
- 我有一个使用 WebAssembly 的基本 Blazor 项目(因此我最终可以将编译后的静态输出放到 AWS S3 上并将其托管在那里)。
- 我已将项目配置为使用 Cognito 作为其身份验证源(请参阅下面的 Program.cs:Main 代码)并且它工作“正常”(它当然有愚蠢的 Cognito X-Frame-Options 问题,但它可以工作)。
程序.cs:主要
问题 在我的 Blazor 应用程序中,我想调用我的后端 API(需要身份验证)并使用 Blazor 应用程序已经拥有的授权,因为客户端和后端都使用相同的 Cognito 用户池。IE
- 加载 Blazor 应用
- 完成登录
- 对我的后端进行 Http 调用 <--使用 #2 中的登录会话
如何配置 HttpClient 实例以通过使用 Cognito 进行身份验证来发送 Blazor 应用程序具有的授权,以便它可以调用受保护的 API?