小编Pat*_*ski的帖子

ASP.NET核心中基于令牌的身份验证(刷新)

我正在使用ASP.NET Core应用程序.我正在尝试实现基于令牌的身份验证,但无法弄清楚如何使用新的安全系统.

我的场景: 客户端请求令牌.我的服务器应该授权用户并返回access_token,客户端将在以下请求中使用该access_token.

这里有两篇关于正确实现我需要的文章:

问题是 - 对于我来说,如何在ASP.NET Core中执行相同的操作并不明显.

我的问题是:如何配置ASP.NET Core Web Api应用程序以使用基于令牌的身份验证?我应该追求什么方向?你有没有写过关于最新版本的文章,或者知道我在哪里可以找到它?

谢谢!

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

68
推荐指数
2
解决办法
5万
查看次数

WebAssembly,JavaScript和其他语言

随着Web新时代的到来,WebAssembly将由Google,Microsoft,Apple和Mozilla合作设计:

WebAssembly高级目标

  1. 定义可移植,大小和加载时间有效的二进制格式作为编译目标,通过利用各种平台(包括移动和物联网)上的常用硬件功能,可以编译为以本机速度执行

阅读更多...

我想问那些已经掌握了这些知识的人:

可能有任何编程语言一旦编译成WebAssembly吗?让它成为C#,Java,Python,JavaScript,Ruby.如果是这种情况 - 网络开发人员是否可以选择任何语言来完成他现在使用JavaScript实现的目标?

javascript c# python webassembly

19
推荐指数
1
解决办法
4885
查看次数

C#和bool的线程安全性

我对这个主题非常困惑 - 读取/切换bool值是否是线程安全的.

    // case one, nothing
    private bool v1;
    public bool V1 { get { return v1; } set { v1 = value; } }

    // case two, with Interlocked on set
    private int v2;
    public int V2 { get { return v2; } set { Interlocked.Exchange(ref v2, value); } }

    // case three, with lock on set
    private object fieldLock = new object();
    private bool v3;
    public bool V3 { get { return v3; } set { lock …
Run Code Online (Sandbox Code Playgroud)

c# multithreading thread-safety

16
推荐指数
3
解决办法
2万
查看次数

猫王操作员词源

根据维基百科,二元运算符?:

通俗地称为猫王操作员,因为它与表情符号相似.

我的问题是:

  • 这个名字与Elvis Presley有什么关系吗?
  • 它究竟与Elvis完全相同?

naming operator-keyword

12
推荐指数
1
解决办法
1349
查看次数

为什么C#6.0中的单例实现不需要beforefieldinit标志?

我试图理解为什么这是Singleton模式的正确实现:

public sealed class Singleton : ISingleton
{
    public static Singleton Instance { get; } = new Singleton();

    private Singleton() { }

    // methods
}
Run Code Online (Sandbox Code Playgroud)

怎么样的beforefieldinit标志?根据Jon Skeet的文章:

类型初始值设定项的懒惰只有在未使用名为beforefieldinit的特殊标志标记类型时才由.NET保证.不幸的是,C#编译器(至少在.NET 1.1运行时中提供)标记所有没有静态构造函数的类型(即看起来像构造函数但被标记为静态的块)作为beforefieldinit.

最新版本的C#中不需要静态构造函数吗?

上面的代码是SystemClockJon Skeet在NodaTime项目中的实现.

编辑 Jon Skeet代码供参考(为什么我提到这个beforefieldinit标志):

public sealed class Singleton
{
    private static readonly Singleton instance = new Singleton();

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    static Singleton()
    {
    }

    private Singleton()
    {
    }

    public static Singleton …
Run Code Online (Sandbox Code Playgroud)

c# singleton

11
推荐指数
1
解决办法
2866
查看次数

如何使用Json.NET将JSON转换为BSON

我有一个包含JSON的字符串.我对这个JSON唯一了解的是它是有效的.如何将此字符串转换为BSON?

c# json.net bson

9
推荐指数
4
解决办法
2万
查看次数

独特的键值对集合

有没有允许任何结构BOTH这些操作:

  • collection.TryGetValue(TKey, out TValue)
  • collection.TryGetKey(TValue, out TKey)

在比O(n)更好的时间?

我的问题:

我基本上需要能够非常快速地检索密钥的值值的密钥,而不会重复内存(因此两个字典是不可能的).

非常重要的说明:所有键都是唯一的,所有值都是唯一的.有了这些信息,我觉得应该可以在比O(1)for .TryGetValue和O(n)更好的时间内完成这项任务.TryGetKey.

编辑:

就我而言,我strings和之间有一个映射ints.有大约650,000个键值对的文本及其ID.所以我基本上想要获取具有特定ID的字符串,但也要获取某个字符串的ID.

.net c# collections big-o

9
推荐指数
1
解决办法
1784
查看次数

从理论上讲,我可以将哪种数据结构用于具有共享内存的树?

真实世界的问题

我有一片树林.像20,000棵树一样.这片森林占据了太多的记忆.但是这些树是相似的 - 你可以找到一组树(约200棵树),这样它们就有一个相当大的子树(几十%)的共同子树.

理论

所以知道:

树是相似的,即它们共享一个共同的连接子图,包括根(不一定包括叶子 - 但可能).

是否存在允许有效存储该信息的任何数据结构?一旦结构创建,我只对阅读感兴趣.

这并不一定是紧到.NET的解决方案,我可以把它从头代码,我需要的只是想法:d不过,当然,如果在.NET中一些鲜为人知的结构类型的实现了,我会很高兴知道.

我有一种感觉,这个共享内存的东西可能与不可变结构有关,根据定义,它们应该共享内存......

不幸的是,我的树不是二元搜索树.他们可以有任何数量的孩子.

至于阅读,这很简单.我总是从根到叶子导航.就像在任何JSON或XML中一样,给定一个值的确切路径.

相似性

包含两个树中相同(可能)的根连接子图总是包含根并向下跨越.在某些情况下,甚至可以到达树叶.查看示例(黄色部分是包含根连接子图):

在此输入图像描述

根据这些规则,从数学上讲,所有的树都是相似的 - 连接的子图要么是空的,要么只包含根,或者是归纳的 - 它包含根及其子...

.net algorithm tree data-structures

9
推荐指数
1
解决办法
368
查看次数

在MVC 6中读取文件

我想create.sql在我的服务器的主文件夹中访问我的文件.它包含用于设置数据库的查询.我有一个问题,根本无法访问此文件.

1)我无法真正实现目标Configuration.我只能用AddJsonFile,AddXmlFileAddIniFile.我想这不是一个把大sql文件放到其中任何一个的最好的主意.

2)github上的Mvc源似乎丢失了MapPath.所以不可能使用Server.MapPath("~/create.sql").

那么如何实现呢?

c# asp.net-core-mvc asp.net-core

8
推荐指数
2
解决办法
6116
查看次数

与PostgreSQL连接的良好技术

Npgsql用来通过.NET访问PostgreSQL.我担心执行数据库连接的正确方法,因为在我看来,这是一个昂贵的操作,打开一个连接,然后每次我想执行一些事务时关闭它.

所以这是一般的想法:

public class PostgreSQL
{
    private NpgsqlConnection conn; // <- one connection for this object, open all the time

    public PostgreSQL(string connString)
    {
        conn = new NpgsqlConnection(connString);
        conn.Open();
    }

    // ...here making some queries...

    public void Close() => conn.Close(); // <- use this in the very end of the program
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我有一个PostgreSQL类的实例连接.

我的问题:

这种方法对吗?或者我应该每次打开和关闭连接我想要进行交易 - 尽可能晚地打开并尽快关闭?

如果我每次都应该打开和关闭连接 - 我应该编写一个限制并发连接数量的队列吗?或者PostgreSQL将自己处理它 - 理论上,我可以打开200个连接,它会没问题.

请与我分享你的经历^^

编辑: 我将每秒运行100-200个查询.

.net c# theory postgresql

6
推荐指数
2
解决办法
2960
查看次数