问题标签 [blazor-server-side]

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.

0 投票
2 回答
776 浏览

blazor - 适用于企业的 Blazor 托管模型

我一直在积极跟进 Blazor,现在我想从我的工作场所获取一个企业应用程序,并将其转换为 Blazor,以保持企业的限制。我有很多问题,但我会非常关注:在托管方面,我从什么模式开始。ASP.Net 托管、服务器还是客户端?

这是我公司几乎所有最简单的应用程序都遵循的通用架构:

企业架构

简单来说:

Web 门户和移动应用程序(通常也是网站)不能有任何对 ADO 或实体框架的引用。它们只能具有服务端点的 URI。不允许直接访问数据库。如果可用,这些 UI 层必须缓存数据。

用户身份验证是联合的,我们使用 Okta。因此,单点登录 (SSO) 允许我获取用户标识符(域电子邮件)并将其传递回逻辑层以从数据库中获取匹配的身份验证。

WCF 客户端是使用WcfClientProxyGenerator自动生成的,并且依赖于 Web 应用程序的应用程序设置来引入 URI。

WCF 服务具有所有实体框架引用和连接字符串。

Web 应用程序位于负载平衡的 VM 对后面,而 WCF 服务(以及后面的所有内容)也是一对负载平衡的 VM

缓存是一个独立的服务器

在这样的环境下,我为 Blazor 选择了什么样的托管模式?我的 Web 服务器不是基于云的,而是数据中心中的虚拟机。它们是带有 IIS 的 Windows Server 2016,在大多数情况下,IT 和网络安全期望在 IIS 上的应用程序池下运行标准 Web 应用程序。

此外,由于 Blazor 的性质,我允许某些 C# 代码可供客户端使用(查看源代码),但这应该只是格式化逻辑等类型代码。任何其他甚至暗示模型或数据被发回的东西都是不可取的(C# 或 Java)

我现在正在尝试了解服务器端和托管端。任何指导将不胜感激。

0 投票
2 回答
4762 浏览

asp.net-core - 服务器端 Blazor Asp.Net Identity SignInAsync 错误:无法修改响应标头

我试图让 Asp.Net Identity 登录在 Visual Studio 模板应用程序中通过 Blazor 工作,它仍然使用 Razor Pages 和 MVC 登录,但只能让它在事件上工作OnInitAsync,这没有用,因为它需要通过单击按钮完成,而不是在页面加载时完成。

我的失败代码是

我得到错误:

有没有人成功完成这项工作?正如我所提到的,如果我将上述函数放在方法中,我可以让它工作,OnInitAsync但在那里这样做并不好。

任何帮助将非常感激。

0 投票
1 回答
342 浏览

asp.net - ASP.Net 核心 Blazor 数据绑定中断

在过去的 2 天里,不知何故,我与模型的数据绑定在用于“添加新”和“更新”数据库记录的页面上损坏了。我有以下代码 - 为了查看目的,我将其最小化。

页面的 HTML 继续包含其他输入和选择框。下面是整个 Functions 代码块。

我最初有“RO = new RepairOrder();” 在声明位于外部时的 InitAsync() 方法中。投掷吐球我将它作为方法之外的一个衬里包括在内。

当我单击保存按钮时,所有 NULL 值的 RO 都存储在数据库中。

我在页面底部添加了标签元素,绑定到与输入相同的数据,并选择在关闭页面之前查看效果,它们也显示为 NULL。

我还尝试为每个创建单独的字符串项,然后在将 RO 发送到数据库之前执行“RO. = {item};”。

有没有人看到绑定被这样禁用?

0 投票
1 回答
966 浏览

c# - 将 ASP.Net Core 3 预览版 6 发布到 Azure

我正在尝试使用 AspNetCore3 preview6.19307.2 开发一个 Web 应用程序,我会在我的 Azure WebApp 上发布。

我不是第一次尝试发布 AspNetCore 3 的预览版。不知什么原因,我不能。WebApp 应用程序告诉我它无法启动(内部服务器错误)。

在 Kudu 控制台中,当我尝试 AspNetCore3 Preview5 时,我已经安装了ASP.NET Core 3.0 (x64) Runtime(版本 3.0.0-preview5-19227-01)。

现在,自 Preview6 以来,此版本不存在扩展。

因此,我尝试在 Docker 上使用该应用程序。

我尝试了几个 dockerfile,包括:

由 Visual Studio 生成:

第一个记录:


更新 1

在我最后一次尝试中,我尝试了 VSCode 和终端: docker build -t ideastudio -f Dockerfile .

我还有另一个错误:

最初,我DOCKERFILE被添加到/src/Ideatudio.Web.Server文件夹中。在此消息之前,我的文件树看起来像

后:

我有同样的错误...

更新 2

我已经在以下位置恢复了 docker 文件的原始版本(由 Visual Studio 生成) D:\repos\IdeaStudio.Web\src\IdeaStudio.Web.Server\DOCKERFILE

我的日志:

当我将其移至D:\repos\IdeaStudio.Web\src\DOCKERFILE

0 投票
0 回答
62 浏览

asp.net - Asp.net 托管的 Blazor 应用程序在 Script Documents 文件夹中生成了太多的 WASM 文件/对象

从 VS Community 2019 Preview 3 运行时,我看到很多 WASM 相关的脚本文档,这似乎是一个巨大的性能瓶颈。

为什么这些 WASM 文件会在运行时不断生成,以及如何禁用/最小化这种行为?

在此处输入图像描述

0 投票
1 回答
392 浏览

c# - 无法从输入模板名称中确定所需的模板:blazorserverside

我正在尝试设置 blazor 服务器端,但在尝试安装时我一直遇到这个问题

遵循微软的本教程,我在 powershell 窗口中收到此错误

0 投票
1 回答
1326 浏览

c# - 从应用程序的其他位置更新其他 Blazor 组件

考虑一个有动态导航的场景(比如说奶酪类别的列表)。导航组件存在于布局中,该布局具有各种其他内容组件。其中之一允许用户更新所选奶酪类别的名称。但是......我们如何将其反映在导航组件上?如果有人将其视为一棵树,则您必须(在代码中)向上导航到布局,然后向下导航到可以更新状态的导航组件(通过查询服务器或传递更新内容)。

0 投票
5 回答
10984 浏览

razor-pages - Blazor(Razor 组件)从父组件刷新子组件

我有一个简单的子 Blazor 组件(MyModal),如下所示:

在我的父组件中,我这样称呼它:

稍后在页面最初呈现后我更新MyObject但子组件本身引用@MyObject.Name永远不会更新。

似乎我必须在更新 Object ( StateHasChanged) 后强制刷新子对象,但不确定如何使用此示例执行此操作。

0 投票
1 回答
1270 浏览

amazon-cognito - 托管 Blazor 服务器 - 使用 AWS Cognito 配置 OpenId Connect

我正在尝试使用 AWS Cognito 设置 Blazor(服务器端 - 预览版 6)。不幸的是,我对 ASP.NET Core 或 OAuth/OpenId 没有太多经验。目前,我可以单击OpenIdConnect按钮并进行用户身份验证。但这是我看到的结果(一旦 Cognito 重定向到https://localhost:44385/signin-oidc):

在此处输入图像描述

所以这让我发疯。“加载外部登录信息时出错”是什么意思?它与权限/允许范围有关吗?我确实尝试options.Scope.Add()过使用“电子邮件”、“个人资料”和/或“openid”——但这似乎没有帮助。

这是我的Startup.cs文件中的内容:

这是输出窗口的内容:

里面没有明显的错误。这是我的 Cognito 配置:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

有什么我想念的吗。有人可以指出我正确的方向吗?

更新

如果我点击主页链接,我可以看到我已经登录。所以在 Cognito 回调后重定向有什么不对吗?

0 投票
0 回答
71 浏览

c# - 服务器端 Blazor(预览版 6)- 是否可以要求对特定页面进行身份验证?

对于 Blazor 服务器托管页面 - 是否可以要求身份验证?基于以下文档:

https://docs.microsoft.com/en-au/aspnet/core/security/authorization/policies?view=aspnetcore-3.0

我已将以下内容添加到我的Startup.cs

这是我放在fetchdata页面顶部的内容:

有人能告诉我我是否走在正确的轨道上吗?