小编Dot*_*rog的帖子

基于属性的路由VS基于约定的路由 - ASP.net核心RESTful API的最佳实践

我是一名经验丰富的.NET开发人员,在过去的几天里,我在.NET Core中迈出了第一步,更具体地说是使用ASP.net Core构建RESTful API.

我知道有两种可能的路由选项 - 约定路由(传统)与基于属性的路由(更新).

我读过ASP.net核心开发团队的建议是使用基于属性的路由来实现API,而不是传统的基于约定的路由,它更适合于MVC应用程序.

我真的很想明白 - 为什么

似乎基于属性的路由使我们编写更多代码,最终具有与传统路由相同的行为.

c# asp.net asp.net-web-api .net-core asp.net-core

6
推荐指数
1
解决办法
4062
查看次数

ElasticSearch Edge NGram vs Prefix查询

假设我们有一个相对较短的文本字段,假设最多10个字符并保存为关键字.
我希望我的用户能够前缀搜索这个字段(不是自动完成/搜索你的类型).
我已经阅读过Elastic的文档,前缀查询的扩展性很差,并且它们提供了几个示例来演示它.

什么时候可以使用前缀搜索,什么时候应该使用index-time edge-ngrams?构建和存储此字段的索引时间edge-ngrams听起来过多,但也许我错过了一些东西.

prefix n-gram elasticsearch

6
推荐指数
1
解决办法
548
查看次数

Typescript 和 AngularJS - 静态方法与服务

TL;DR:与 angular 无关的静态基本功能 - 实现为 AngularJS 服务还是普通的静态导出类/方法?

长版:我已经在 TS 中编程大约一个月了,因为我们正在重构我们的应用程序以使用 TS(为 angular 2.0 做准备)。当开始了解我们的一些基本 Angular 服务时,我在想——因为实现静态类和方法很容易——也许我们的一些服务根本不应该是服务。当然,以某种方式与角度有关的任何功能都必须作为服务来实现。例如,ColorConverter 或 ColorPicker——今天我们应用程序中的 angularjs 服务实现了不会改变或与 angular 或任何共享外部资源有关的静态逻辑——可以很容易地替换为导出静态函数的静态模块。我办公室里有人提出支持 Angular 服务的一个论点是,稍后我们可以轻松地嘲笑这个逻辑。但是为什么我要模拟不会更改且不访问任何外部资源的静态逻辑?一分钱你的想法。

static angularjs typescript angularjs-service

5
推荐指数
1
解决办法
2725
查看次数

IdentityServer4 - 会话管理和空闲超时或不活动时段

我已经配置了IdentityServer几个客户端,其中一些是使用Hybrid flow(桌面,iOS,并不重要)的本机应用程序.

我想强制注销超过X分钟不活动的用户,如果可能的话,再次重定向到登录页面.
我可以设法通过使用短暂刷新令牌以实现这一目标RefreshTokenExpiration = true,并且SlidingRefreshTokenLifetime = *DesiredTimeoutTime*,和每次调用API之前,客户端首先刷新用户的访问令牌.实际上,这会将会话管理空闲超时重载到刷新令牌的到期时间.
但这不是它的设计使用方式.刷新令牌应该是长寿的.
此外,对于API的每次调用,客户端都会刷新它的访问令牌,因为我使用持久存储来获取我的授权(特别是使用内置EF支持的SQL Server),这意味着我的方式比我更多曾经想过我的ID DB.

我指定我使用的是本机应用程序,因为我知道它(可能)可以使用cookie实现基于浏览器的应用程序,但同样,那些与本机应用程序不能很好地工作(对于我知道的所有内容,请放心如果我错了就纠正我.如果有可能以某种方式实现饼干 - 我很乐意听到.
总的来说,我真的缺乏对Identity.Application cookievs 的关系的了解Access Token.这有点令人困惑.

无论如何,我正在寻找更优雅的解决方案,如果有的话.
谢谢.

session asp.net-identity-3 asp.net-core identityserver4 asp.net-core-identity

5
推荐指数
0
解决办法
1327
查看次数

将IdentityServer 4与ASP.NET Core Identity一起使用有什么附加价值?

TL; DR - 标题:)

背景故事: 我正在构建一组应用程序(包括RESTful API和几个客户端 - 纯Web应用程序和移动应用程序).所有的核心API都将被写入ASP.NET Core.我想解决身份验证授权问题.

我不想使用云或外部服务,因为保持所有用户相关数据关闭是我的首要任务(包括密码).

根据我的阅读,似乎ASP.NET Core Identity提供了与所需的身份验证和授权相关的所有功能和流程.我可以管理整个用户群,包括散列密码,以及我自己与用户相关的所有数据.它是抽象和混凝土的集合(如果需要,我可以扩展).

我还读到我可以整合IdentityServer 4.从我的理解,它给了我额外的安全层,我可以将其用作安全令牌服务(STS),并为我提供OAuth 2.0授权和OpenID身份验证的实现,这很棒,但是...是吗?我只是想了解使用它的好处是什么.

我的问题有两个部分:

  1. ASP.NET核心身份和IdentityServer 4之间有什么关系?
    IdentityServer 4是否提供ASP.NET身份提供的抽象的一些(不同的)混凝土?
    我想知道ASP.NET Identity和IdentityServer 4之间的关系.
  2. 使用IdentityServer 4进行开发的成本是多少?它是直截了当的,还是实现起来并不简单?
  3. 奖金问题:) - 那里有其他选择吗?你会选择什么?为什么?

以下问题有一个很好的答案,它回答了我的很多问题,但我仍然想要一个特定于我的问题的答案.

提前致谢!

authentication oauth-2.0 asp.net-core identityserver4 asp.net-core-identity

4
推荐指数
1
解决办法
1222
查看次数

带GO的Visual Studio代码 - 多个主要声明(启动设置)

我是VS代码和Golang的新手.
我有一个包含2个不同服务的现有项目 - 让我们调用一个A和第二个B.A
和B都位于同一目录下.

每当我尝试运行A或B时,我都会收到以下错误:

# directory/directory/directory/A&B_Directory
./A.go:12:6: main redeclared in this block
    previous declaration at ./B.go:18:6
Run Code Online (Sandbox Code Playgroud)

我尝试使用该launch.json文件,添加以下部分:

   {
        "name": "Launch Program",
        "type": "go",
        "request": "launch",
        "mode": "debug",
        "program": "FullDirectory/A.go"
    }
Run Code Online (Sandbox Code Playgroud)

还尝试在program属性中设置为${file}失败的许多其他变体.

我喜欢某个方向,我有点失落.谢谢.

go visual-studio-code vscode-settings

-1
推荐指数
1
解决办法
2321
查看次数