Dvorak
Dvorak

Dvorak Chen

All Posts in 2024.6


学学dotnet core中的身份验证和授权-2-cookie

学习dotnet core中的身份验证和授权-2-cookie 本文介绍了如何使用cookie进行基于声明的身份验证和授权。首先,通过登录接口获取凭证,然后将声明下发到客户端的cookie中。接着,使用身份验证中间件解析cookie中的声明。最后,通过定义基于声明的授权策略来对接口进行授权处理。文章还提到了如何使用AddAuthentication和AddCookie方法定义身份验证策略,并介绍了如何在接口上使用[Authorize("Need24")]来指定授权策略。最后,通过测试验证了身份验证和授权的生效。文章指出,虽然使用cookie进行身份验证和授权简单,但在实际情况中可能会遇到一些问题,如跨域情况。--GPT 4

.NET

学学dotnet core中的身份验证和授权-1-概念

学习.NET Core中的身份验证和授权-1-概念 本文旨在讲解.NET Core中的身份验证和授权的概念。身份验证和授权是相辅相成的,必须先进行身份验证才能进行授权。身份验证是为了证明来者的身份,而授权是根据身份的权限决定是否允许访问某个资源。在.NET Core中,身份验证和授权的信息传递通过声明(Claim)来实现。声明是身份的相关信息,每个声明由类型和值组成。通过身份验证后得到的声明将传递给授权程序,授权程序根据声明判断是否通过授权。授权通过将允许访问对应的资源,不通过将被拒绝。在下一篇文章中,我们将使用cookie来实现一个简单的身份验证和授权。通过本文的学习,你将了解身份验证和授权的关系以及如何使用声明进行授权判断。--GPT 4

.NET

Rust - bytecodec 编解码库

Rust - bytecodec Encoding and Decoding Library This blog post discusses the use of the bytecodec library in Rust for encoding and decoding data. The author starts by explaining the need for a simple protocol to serialize objects into binary format for network transmission. Instead of using JSON, the author decides to create a custom protocol where each field is represented on a separate line. However, the author soon realizes that the implementation becomes messy and lacks abstraction. The problem lies in the lack of a standardized approach to encoding and decoding. Although the `Peer` object only has three members, each member needs to be individually implemented for encoding and decoding. This lack of abstraction leads to inconsistent naming, implementation, and method usage, making the code difficult to manage. To solve this problem, the author proposes the use of traits to provide a standardized approach to encoding and decoding. The bytecodec library offers the `Encode` and `De...--GPT 4

Rust

Rust 小技巧之临时作用域

Rust小技巧之临时作用域 本文介绍了在Rust中使用临时作用域来优化代码的方法。首先,作者提到了在处理`Result`和`Option`时,可以使用`if let`和`?`操作符来简化代码。接下来,作者给出了一个读取用户输入的示例,并提出了优化的思路。首先,可以将读取输入的代码封装成一个函数,并返回所需的变量。其次,作者介绍了一种更喜欢的方法,即使用临时作用域来处理读取输入的操作。在临时作用域中定义的变量在作用域结束后会被释放,从而简化了代码。最后,作者比喻了临时作用域的好处,就像有一个只能放数据线的小盒子,能够方便地收纳数据线。通过使用临时作用域,可以提高代码的可读性和简洁性。 思考问题:你是否在自己的代码中使用过临时作用域?你认为在哪些情况下使用临时作用域会更加合适?--GPT 4

Rust

P2P 的 NAT

P2P的NAT 本文讨论了NAT(网络地址转换)的原理和对P2P通信的影响。NAT是为了解决IPv4地址不足的问题而出现的临时方案,但对互联网产生了负面影响。 首先,文章介绍了全局地址和专用地址的概念,以及NAT如何将专用地址映射为全局地址。 然后,文章讨论了NAT的缺点,包括违反IP地址设计原则、使网络变得脆弱、破坏网络分层结构模型等。 接下来,文章介绍了不同类型的NAT,包括全锥型、受限锥型、端口受限锥型和对称型,并解释了它们在P2P通信中的表现。 最后,文章讨论了在不同类型的NAT下如何实现P2P通信,并指出了一些无法建立P2P连接的情况。 总的来说,NAT是一个有用但失败的协议,它缓解了IPv4地址不足的问题,但也给网络带来了复杂性和脆弱性。NAT的普及延缓了IPv6的普及,并对P2P通信造成了困扰。--GPT 4

network