public static OAuthServerBuilder <TUser> AddUserInfoEndpoint <TUser>( this OAuthServerBuilder <TUser> builder, string path, Func <ResourceContext, Task <TUser> > userAccessor, params string[] scopes) { Guard.ArgumentNotNull(builder, nameof(builder)); Guard.ArgumentNotNullOrWhiteSpace(path, nameof(path)); Guard.ArgumentNotNull(userAccessor, nameof(userAccessor)); Guard.ArgumentNotNullOrEmpty(scopes, nameof(scopes)); async Task handler(ResourceContext context) { try { TUser user = await userAccessor(context); context.HttpContext.Response.ContentType = "application/json"; var settings = context.HttpContext.RequestServices.GetRequiredService <IOptions <OAuthServerOptions> >().Value.ResourceServer.JsonSerializerSettings; await context.HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(user, settings)); } catch { context.HttpContext.Response.StatusCode = 500; } } return(builder.Configure(options => options.ResourceServer.Endpoints.Add(new ResourceEndpoint(new PathString(path), new HttpMethod[] { new HttpMethod("POST"), new HttpMethod("GET") }, handler, scopes)))); }
public static OAuthServerBuilder <TUser> Configure <TUser>(this OAuthServerBuilder <TUser> builder, Action <OAuthServerOptions> configure) { Guard.ArgumentNotNull(builder, nameof(builder)); Guard.ArgumentNotNull(configure, nameof(configure)); builder.Services.Configure(configure); return(builder); }
public static OAuthServerBuilder <TUser> AddScope <TUser>(this OAuthServerBuilder <TUser> builder, string id, string title, string description, string iconUrl, bool optional) { AddScope((OAuthServerBuilder)builder, id, title, description, iconUrl, optional); return(builder); }
/// <summary> /// Registers the <see cref="OAuthDbStore{TDbContext}"/> to specified <see cref="AuthorizationServerBuilder"/>. /// </summary> /// <typeparam name="TDbContext">The type of <see cref="DbContext"/>.</typeparam> /// <param name="builder">The <see cref="AuthorizationServerBuilder"/> to which the <see cref="OAuthDbStore{TDbContext}"/> is registered.</param> /// <returns>The <see cref="AuthorizationServerBuilder"/> with the new registration.</returns> /// <exception cref="ArgumentNullException">Specified <paramref name="builder"/> is null.</exception> public static OAuthServerBuilder AddEntityFrameworkStore <TDbContext>(this OAuthServerBuilder builder) where TDbContext : DbContext { Guard.ArgumentNotNull(builder, nameof(builder)); builder.Services.TryAddScoped <IApplicationStore, OAuthDbStore <TDbContext> >(); builder.Services.TryAddScoped <IDelegateConsentStore, OAuthDbStore <TDbContext> >(); builder.Services.TryAddScoped <IOAuthGrantStore, OAuthDbStore <TDbContext> >(); return(builder); }
public static OAuthServerBuilder AddScope(this OAuthServerBuilder builder, string id, string title, string description, string iconUrl, bool optional) { Guard.ArgumentNotNull(builder, nameof(builder)); Guard.ArgumentNotNullOrWhiteSpace(id, nameof(id)); Guard.ArgumentNotNullOrWhiteSpace(title, nameof(title)); Guard.ArgumentNotNullOrWhiteSpace(description, nameof(description)); builder.Services.Configure <OAuthServerOptions>(options => options.AuthorizationServer.Scopes.Add(new ScopeOptions { Id = id, Title = title, IconUrl = iconUrl, Description = description, Optional = optional })); return(builder); }
public static OAuthServerBuilder <TUser> AddEntityFrameworkStore <TUser, TDbContext>(this OAuthServerBuilder <TUser> builder) where TDbContext : DbContext { AddEntityFrameworkStore <TDbContext>((OAuthServerBuilder)builder); return(builder); }