using System.Collections.Generic; using System.Security.Claims; using System.Text.Encodings.Web; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using NzbDrone.Core.Authentication; namespace Sonarr.Http.Authentication { public class NoAuthenticationHandler : AuthenticationHandler { public NoAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock) { } protected override Task HandleAuthenticateAsync() { var claims = new List { new Claim("user", "Anonymous"), new Claim("AuthType", AuthenticationType.None.ToString()) }; var identity = new ClaimsIdentity(claims, "NoAuth", "user", "identifier"); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, "NoAuth"); return Task.FromResult(AuthenticateResult.Success(ticket)); } } }