.net core IServiceCollection 框架基础扩展方法 用途

IServiceCollection 的扩展方法 首先需要知道都有哪些扩展方法以及用途


services.AddAntiforgery

CSRF验证
services.AddAntiforgery(options =>
{
    options.HeaderName = "X-CSRF-TOKEN";
});

 

services.AddAuthentication

认证服务

service.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme),

方法返回AuthenticationBuilder,但此刻还只是组建了认证服务的框架,还需要向这个框架中添加处理认证的方案,

所以会通过AuthenticationBuilder.AddCookie将Cooike的认证方案添加进来,当然我们可以添加很多个方案,比如使用JWT进行认证,

但实际认证过程还是根据传递的默认方案的名称进行的。

功能多于  AuthenticationCore

 1    /// <summary>
 2     /// Registers services required by authentication services.
 3     /// </summary>
 4     /// <param name="services">The <see cref="IServiceCollection"/>.</param>
 5     /// <returns>A <see cref="AuthenticationBuilder"/> that can be used to further configure authentication.</returns>
 6     public static AuthenticationBuilder AddAuthentication(this IServiceCollection services)
 7     {
 8         ArgumentNullException.ThrowIfNull(services);
 9  
10         services.AddAuthenticationCore();
11         services.AddDataProtection();
12         services.AddWebEncoders();
13         services.TryAddSingleton<ISystemClock, SystemClock>();
14         services.TryAddSingleton<IAuthenticationConfigurationProvider, DefaultAuthenticationConfigurationProvider>();
15  
16         return new AuthenticationBuilder(services);
17     }

 

 

 

 


services.AddAuthenticationCore 源码 

 

 1   /// <summary>
 2     /// Add core authentication services needed for <see cref="IAuthenticationService"/>.
 3     /// </summary>
 4     /// <param name="services">The <see cref="IServiceCollection"/>.</param>
 5     /// <returns>The service collection.</returns>
 6     public static IServiceCollection AddAuthenticationCore(this IServiceCollection services)
 7     {
 8         ArgumentNullException.ThrowIfNull(services);
 9  
10         services.TryAddScoped<IAuthenticationService, AuthenticationService>();
11         services.TryAddSingleton<IClaimsTransformation, NoopClaimsTransformation>(); // Can be replaced with scoped ones that use DbContext
12         services.TryAddScoped<IAuthenticationHandlerProvider, AuthenticationHandlerProvider>();
13         services.TryAddSingleton<IAuthenticationSchemeProvider, AuthenticationSchemeProvider>();
14         return services;
15     }

 


services.AddAuthorization
services.AddAuthorizationCore


services.AddAuthorizationPolicyEvaluator
services.AddCertificateForwarding
services.AddConnections
services.AddControllers
services.AddControllersWithViews
services.AddCookiePolicy
services.AddCookiePolicy<>
services.AddCors
services.AddDataProtection
services.AddDirectoryBrowser
services.AddDistributedMemoryCache
services.AddEndpointsApiExplorer
services.AddExceptionHandler
services.AddExceptionHandler<>
services.AddHealthChecks
services.AddHostedService
services.AddHostFiltering
services.AddHsts
services.AddHttpClient
services.AddHttpContextAccessor
services.AddHttpLogging
services.AddHttpsRedirection
services.AddIdentity
services.AddIdentityCore
services.AddLocalization
services.AddLogging
services.AddMemoryCache
services.AddMvc
services.AddMvcCore
services.AddOptions
services.AddRazorPages
services.AddRequestLocalization
services.AddResponseCaching
services.AddResponseCompression
services.AddRouting
services.AddScoped
services.AddServerSideBlazor
services.AddSession
services.AddSignalR
services.AddSignalRCore
services.AddSingleton
services.AddSwaggerGen
services.AddTransient
services.AddW3CLogging
services.AddWebEncoders

posted on 2023-02-27 23:58  是水饺不是水饺  阅读(110)  评论(0编辑  收藏  举报

导航