如何在VS Code中查看Dotnet中间件(如UseAuthentication())的实现代码?
当你在VS Code中按住Ctrl+右键点击app.UseAuthorization()时,只会打开接口定义而非实际实现代码,示例如下:
app.UseAuthorization(); // 点击后打开的内容 #region Assembly Microsoft.AspNetCore.Authorization.Policy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60 // Microsoft.AspNetCore.Authorization.Policy.dll #endregion #nullable enable namespace Microsoft.AspNetCore.Builder { public static class AuthorizationAppBuilderExtensions { public static IApplicationBuilder UseAuthorization(this IApplicationBuilder app); } }
要查看实际实现代码,可以按以下方法操作:
启用SourceLink支持
打开VS Code设置(快捷键Ctrl+,),搜索dotnet.enableSourceLink并勾选启用。该设置会让VS Code尝试拉取官方.NET类库的原始源码,从而跳转到实际实现。安装符号包
确保项目已安装Microsoft.AspNetCore.Authorization.Policy的符号包,可通过NuGet命令行执行:dotnet add package Microsoft.AspNetCore.Authorization.Policy --include-symbols符号包包含了源码关联信息,能帮助VS Code定位到实现代码。
直接定位核心实现类
UseAuthorization作为扩展方法,实际是将AuthorizationMiddleware添加到请求管道中。你可以直接在项目或.NET源码中查找AuthorizationMiddleware类,它的InvokeAsync方法就是授权逻辑的核心实现。
内容的提问来源于stack exchange,提问作者Sangam Rimal
相关产品推荐
相关产品推荐

