小编Bod*_*lot的帖子

如何存储访问令牌?(Oauth 2,Auth代码流程)

据我所知,授权代码流程的目的是为访问令牌交换auth代码.此交换发生在为页面和授权服务器提供服务的服务器之间,因此实际访问令牌不会暴露给客户端用户.

一旦获取了访问令牌,页面服务器应该如何存储?我正在从Pluralsight示例中学习,其中包含以下代码:

    public static HttpClient GetClient()
    {
        HttpClient client = new HttpClient();
        var accessToken = RequestAccessTokenAuthorizationCode();
        client.SetBearerToken(accessToken);

        client.BaseAddress = new Uri(IdentityConstants.API);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        return client;
    }

    private static string RequestAccessTokenAuthorizationCode()
    {
        // did we store the token before?
        var cookie = HttpContext.Current.Request.Cookies.Get("ClientMVCCookie.AuthCode");
        if (cookie != null && cookie["access_token"] != null && !string.IsNullOrEmpty(cookie["access_token"]))
        {
            return cookie["access_token"];
        }

        // no token found - request one

        // we'll pass through the URI we want to return to as state
        var state …
Run Code Online (Sandbox Code Playgroud)

security authentication oauth oauth-2.0

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

编译器管道如何对应增量源生成?

我无法理解 Roslyn 文档并将其与我在增量源生成器上工作时看到的内容相匹配。

https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/compiler-api-model

它有一张信息非常丰富的图片。

在此输入图像描述

据我了解,语法树是解析器工作的结果(这是正确的吗?)。我可以通过 IncrementalGeneratorInitializationContext.SyntaxProvider 访问语法树。让我困惑的是 GeneratorSyntaxContext 有一个名为 SemanticModel 的属性,它似乎允许访问符号。我认为符号是编译的产物,在处理语法时不应该可用。

这引出了另一个问题。编译器管道的哪一部分对应于编译?是活页夹吗?

.net roslyn roslyn-code-analysis csharp-source-generator

2
推荐指数
1
解决办法
312
查看次数