问题标签 [asp-net-core-spa-services]

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 投票
0 回答
416 浏览

angularjs - ASP.NET Core 与现代 Web 框架的集成

我正在寻找有关以下技术以及如何最好地集成/设置前进关注点的指导......

我们有许多使用 asp.net 和 asp.net core 的现有 Web 应用程序。我们希望利用最新的 JavaScript 框架 vue/angular 来更新和推动它们。目前,我们正在使用 vue,因为考虑到我们当前基于淘汰赛的框架,我们认为这是最简单的跳跃。无论正在考虑的特定 javascript 框架如何,这些问题/担忧都是相似的

目前我们正在使用框架各自的 cli 工具,构建项目/解决方案,然后将 ClientApp 复制到 vs.net 中的同名文件夹(然后更新 startup.cs)以与 hmr 技术集成。

  1. 注意事项...最好跳入完整的 spa 类型方法并完全摆脱页面级编码?虽然这可能最适合学习,但我们确实需要在不完全重写的情况下迁移现有应用程序的方法。这两种方法能否在同一个解决方案中轻松使用(我们目前正在迁移到 vue)。是否有显示这种组合方法的 git 存储库?我相信最好的答案是组合。一种解决方案,其中路由可以使用历史 mvc 路由到控制器/方法和视图,而其他路由可以一起路由到各个 spa 页面。我还没有找到演示这种组合的存储库。很难找到它可能有一个很好的理由。

  2. 关于 vue.js,我们修改了 Startup.cs 以依赖 vue cli 3 vue-cli-service 来服务我们的页面

    /li>

我还看到了解决方案,他们修改了 Startup 以直接使用 app.UseWebpackDevMiddleware 并指向 cli-service/webpack.config.js

这里的两种方法都可以正常工作,但我质疑我们应该将哪一种方法确定为最佳方法。从本质上讲,我觉得最好还是使用 #1,因为它最符合 vue cli 文档,其中使用 UseWebpackDevMiddleware 可能只会增加更多混乱。

0 投票
0 回答
157 浏览

asp.net-core-2.1 - asp-prerender-data 标签助手中的 JSON 序列化设置

在我的 asp.net core 2.1 Web 应用程序中,我想更改服务器序列化 JSON 响应的方式。我想按原样序列化属性名称(不在 camlCase 或 PascalCase 中)。为了实现 mvc 控制器结果的序列化,我这样做了:

现在我的控制器按照我的意图返回 JSON。

但是我的应用程序是一个单页 React 应用程序,它使用带有 spa 服务的服务器端渲染。每次用户使用浏览器的地址栏、通过刷新页面或通过外部链接导航到路由时,服务器都会使用asp-prerender-data帮助程序发送带有附加数据的预渲染 html。

似乎 spa 服务没有使用与 MVC 控制器相同的 JSON 序列化程序设置,并且我的初始页面数据以 camlCase 发送到客户端,这会破坏渲染。

DefaultContractResolver我该如何设置asp-prerender-data助手?

0 投票
0 回答
128 浏览

asp.net-mvc - 在 ASP.NET 2.1 的自定义 Razor 页面上运行默认反应应用程序

我正在使用 Vs 2017 模板创建一个带有 ASP.Net Core 2.1 的 React App。默认情况下,当我运行应用程序时,它会以某种方式在默认索引页面上运行。

如何使在索引页面上运行的相同反应应用程序在自定义剃须刀页面上运行?

例如:默认情况下在https://localhost:32323上运行,而不是在https://localhost:32323/Sample上运行

0 投票
0 回答
761 浏览

angular - 身份服务器负载平衡失败。是因为我的 IdentityServer4 实现不保留刷新令牌吗?

身份服务器负载平衡失败。启动多个身份服务器实例时无法正常工作。使用单个身份服务器实例,它按预期工作正常。是因为我的 IdentityServer4 实现不保留刷新令牌吗?

最初,我的身份服务器将所有内容都存储在内存中。现在身份服务器负载平衡失败后,尝试实现 IPersistantGrantStore 并添加 AddOperationalStore ,它创建了数据库。但是没有任何东西存储在那里。Startup.cs 在下面。如果有,请纠正我哪里不对了。

Identity Server 负载均衡失败需要解决

0 投票
0 回答
23 浏览

iis - 托管应用程序只能在服务器上访问

我有两个项目,一个是ASP.NET core API,另一个是Angular。我将它们都托管在同一台服务器上。 API像托管一样托管,像托管的myip:2020角度应用程序一样mydomain.com (default port)

当我运行这两个网站时,它们在服务器上运行良好,但是当我mydomain.com从本地计算机进入时,它返回timeout gateway

在控制台中它说make sure myip:2020 is accessible

0 投票
4 回答
4610 浏览

automapper - 在 AutoMapper 问题中使用 string.Split()

我有一个 ASP .Net 核心应用程序。我只是想让我的 AutoMapper 配置为根据此配置将分隔的字符串逗号转换为字符串列表:

由于某种原因,它没有被编译并给我以下错误:

表达式树可能不包含使用可选参数的调用或调用

我不明白为什么会收到此错误。我很确定我之前在其他项目中也这样做过,没有任何此类错误。

0 投票
1 回答
58 浏览

azure - 似乎我从 azure ad 获得了错误的不记名令牌,APM API 未经授权

使用上面的代码获取不记名令牌,我得到错误/不完整的不记名令牌。然后添加到客户端标头中。

0 投票
0 回答
1050 浏览

reactjs - 部署新版本的 ASP.NET Core / React 应用程序时如何确保客户端完全重新加载?

我有一个小的 ASP.NET Core Web 应用程序,它有一个 React 前端。VS2017 向导中几乎开箱即用的“新项目”,然后添加到。

我现在已经通过我们的构建和部署系统进行了部署,并且 ASP.NET Core DLL 具有从构建服务器设置的构建版本。

但是,当我部署时,React 前端没有正确重新加载,并且没有出现新功能。我必须让用户按 ctrl-F5 来更新它。

我添加了版本更改检测(在控制器上添加了 API 调用),window.location.reload()当它看到客户端时,它仍然从缓存中提取客户端文件。

我可以将版本号添加到 url、webpack 或类似的东西以强制从服务器获取吗?

更新:与创建反应应用程序的缓存破坏似乎相关。我可以试试那个...

0 投票
2 回答
146 浏览

c# - 先用点表示小数,然后用逗号表示

我找到了很多第一个逗号然后指向的解决方案,我想要这样的东西:133.000,00

到目前为止我尝试了什么:@item.Price.ToString("C3", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"))

@String.Format("{0:#.##0,######}", item.Price)

在第二种格式中,我只得到133000.00

0 投票
2 回答
1876 浏览

c# - JWT Auth 适用于授权属性,但不适用于 [Authorize (Policy = "Administrator")]

我有一个使用 Json Web 令牌对用户进行身份验证和授权的 .NetCore 2.2 应用程序。

当我将 [Authorize] 属性添加到我的控制器时,我可以将承载令牌添加到对这些控制器的任何请求并与数据交互。

当我更改 Auth 属性以包含角色时,例如 [Authorize (Policy="Administrator")] 请求总是返回 403。

User.cs 模型包含一个 Role 枚举,其值为 User/Administrator。

在 Startup.cs 中,我添加了 RequireRole/RequireAuthenticatedUser。

请参阅 Startup.cs

示例控制器方法:

此控制器方法从所有交互中返回 403 未授权请求。我认为我的 JWT 令牌不包含 Role 值,但我不确定如何检查或如何包含它。

任何帮助表示赞赏。

编辑:

关注用户

用户类

编辑2:

因此,JWT 使用角色作为一种身份验证形式真正需要的所有内容都包含在下面的 Startup.cs 函数 ConfigureServices 中。我省略了 JWT 类,并在下面也包含了它。

我更改了控制器上的 auth 属性以查找 Roles = "Administrator" 而不是 Policies。

启动.cs

之前不明白的JWT Helper类:

}

具有角色属性的控制器示例:

最后,大部分内容都是显而易见的,在我开始这个项目之前我应该​​知道不要介意这篇文章 - 但是更新所以将来遇到这个的任何人都会看到更合适的路线。