据我所知,授权代码流程的目的是为访问令牌交换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) 我无法理解 Roslyn 文档并将其与我在增量源生成器上工作时看到的内容相匹配。
https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/compiler-api-model
它有一张信息非常丰富的图片。
据我了解,语法树是解析器工作的结果(这是正确的吗?)。我可以通过 IncrementalGeneratorInitializationContext.SyntaxProvider 访问语法树。让我困惑的是 GeneratorSyntaxContext 有一个名为 SemanticModel 的属性,它似乎允许访问符号。我认为符号是编译的产物,在处理语法时不应该可用。
这引出了另一个问题。编译器管道的哪一部分对应于编译?是活页夹吗?