diff --git a/.vs/WebApi/xs/UserPrefs.xml b/.vs/WebApi/xs/UserPrefs.xml new file mode 100644 index 0000000..12fd726 --- /dev/null +++ b/.vs/WebApi/xs/UserPrefs.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vs/WebApi/xs/project-cache/WebApi-Debug.json b/.vs/WebApi/xs/project-cache/WebApi-Debug.json new file mode 100644 index 0000000..a6d1993 --- /dev/null +++ b/.vs/WebApi/xs/project-cache/WebApi-Debug.json @@ -0,0 +1 @@ +{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Antiforgery.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authentication.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authentication.Cookies.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authentication.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authentication.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.aspnetcore.authentication.jwtbearer/3.1.6/lib/netcoreapp3.1/Microsoft.AspNetCore.Authentication.JwtBearer.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authentication.OAuth.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authorization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Authorization.Policy.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Components.Authorization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Components.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Components.Forms.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Components.Server.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Components.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Connections.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.CookiePolicy.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Cors.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Cryptography.Internal.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.DataProtection.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.DataProtection.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.DataProtection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Diagnostics.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Diagnostics.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.HostFiltering.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Hosting.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Hosting.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Html.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.Connections.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.Connections.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Http.Features.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.HttpOverrides.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.HttpsPolicy.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Identity.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Localization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Localization.Routing.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Metadata.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.ApiExplorer.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Cors.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.DataAnnotations.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Formatters.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Formatters.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Localization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.Razor.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.RazorPages.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.TagHelpers.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Mvc.ViewFeatures.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Razor.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Razor.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.ResponseCaching.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.ResponseCompression.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Rewrite.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Routing.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Routing.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.HttpSys.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.IIS.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.IISIntegration.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.Kestrel.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.Kestrel.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.Session.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.SignalR.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.SignalR.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.SignalR.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.SignalR.Protocols.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.StaticFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.AspNetCore.WebUtilities.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/Microsoft.CSharp.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Caching.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Caching.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.Binder.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.CommandLine.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.EnvironmentVariables.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.FileExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.Ini.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.KeyPerFile.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.UserSecrets.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Configuration.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Diagnostics.HealthChecks.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.FileProviders.Composite.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.FileProviders.Embedded.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.FileProviders.Physical.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.FileSystemGlobbing.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Hosting.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Hosting.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Identity.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Identity.Stores.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Localization.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Localization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.Configuration.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.EventLog.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.EventSource.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Logging.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.ObjectPool.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Options.ConfigurationExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Options.DataAnnotations.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Options.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Extensions.WebEncoders.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.identitymodel.jsonwebtokens/6.7.1/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.identitymodel.logging/6.7.1/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.identitymodel.protocols/5.5.0/lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.identitymodel.protocols.openidconnect/5.5.0/lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/microsoft.identitymodel.tokens/6.7.1/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.JSInterop.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Net.Http.Headers.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/Microsoft.VisualBasic.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/Microsoft.VisualBasic.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/sdk/NuGetFallbackFolder/newtonsoft.json/10.0.1/lib/netstandard1.3/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Collections.Immutable.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.DataAnnotations.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Configuration.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Data.DataSetExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Data.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Diagnostics.EventLog.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Drawing.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/sayed/.nuget/packages/system.identitymodel.tokens.jwt/6.7.1/lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.Compression.Brotli.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.Compression.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.Compression.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.IO.Pipelines.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.WebClient.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.WebProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Metadata.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Intrinsics.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Serialization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Security.Cryptography.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Security.Permissions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ServiceModel.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ServiceProcess.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.Encodings.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Channels.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Tasks.Dataflow.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Transactions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Transactions.Local.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Web.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Web.HttpUtility.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.8/ref/netcoreapp3.1/System.Windows.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.Serialization.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Ref/3.1.0/ref/netcoreapp3.1/WindowsBase.dll","Aliases":[],"Framework":null}],"Files":["/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Controllers/UsersController.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Entities/User.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Helpers/AppSettings.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Helpers/AuthorizeAttribute.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Helpers/JwtMiddleware.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Models/AuthenticateRequest.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Models/AuthenticateResponse.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Program.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Services/UserService.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Startup.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/.DS_Store","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/LICENSE","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/README.md","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/.gitignore","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/appsettings.json","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/appsettings.Development.json","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/Properties/launchSettings.json","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/obj/Debug/netcoreapp3.1/WebApi.AssemblyInfo.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/obj/Debug/netcoreapp3.1/WebApi.AssemblyInfo.cs","/Users/sayed/Developer/DotNet/aspnet-core-3-jwt-authentication-api/obj/Debug/netcoreapp3.1/WebApi.AssemblyInfo.cs"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","None","None","None","None","Content","Content","Content","Compile","Compile","Compile"],"Analyzers":["/usr/local/share/dotnet/sdk/5.0.100/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll","/usr/local/share/dotnet/sdk/5.0.100/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Analyzers.dll","/usr/local/share/dotnet/sdk/5.0.100/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Components.Analyzers.dll"],"AdditionalFiles":[],"EditorConfigFiles":[]} \ No newline at end of file diff --git a/Controllers/UsersController.cs b/Controllers/UsersController.cs index 9794ad6..7a87a2e 100644 --- a/Controllers/UsersController.cs +++ b/Controllers/UsersController.cs @@ -8,17 +8,17 @@ namespace WebApi.Controllers [Route("[controller]")] public class UsersController : ControllerBase { - private IUserService _userService; + private readonly IUserService userService; public UsersController(IUserService userService) { - _userService = userService; + this.userService = userService; } [HttpPost("authenticate")] public IActionResult Authenticate(AuthenticateRequest model) { - var response = _userService.Authenticate(model); + var response = userService.Authenticate(model); if (response == null) return BadRequest(new { message = "Username or password is incorrect" }); @@ -30,7 +30,7 @@ public IActionResult Authenticate(AuthenticateRequest model) [HttpGet] public IActionResult GetAll() { - var users = _userService.GetAll(); + var users = userService.GetAll(); return Ok(users); } } diff --git a/Helpers/AuthorizeAttribute.cs b/Helpers/AuthorizeAttribute.cs index deb4b5d..02b6c89 100644 --- a/Helpers/AuthorizeAttribute.cs +++ b/Helpers/AuthorizeAttribute.cs @@ -2,6 +2,9 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System; +using System.Linq; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.Controllers; using WebApi.Entities; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] @@ -9,11 +12,30 @@ public class AuthorizeAttribute : Attribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationFilterContext context) { + // We're checking here to see if the route has been decorated with an [AllowAnonymous] attribute. If it has, we skip authorization + // for the route. Doing this allows us to apply the [Authorize] attribute by default in the startup using: + // + // services.AddControllers().AddMvcOptions(x => x.Filters.Add(new AuthorizeAttribute())) + // + if (context.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor) + { + var hasAllowAnonymousAttribute = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) + .Any(a => a.GetType() == typeof(AllowAnonymousAttribute)); + if (hasAllowAnonymousAttribute) + { + return; + } + } + var user = (User)context.HttpContext.Items["User"]; if (user == null) + + var userId = context.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "id")?.Value; + if (userId == null) + { // not logged in context.Result = new JsonResult(new { message = "Unauthorized" }) { StatusCode = StatusCodes.Status401Unauthorized }; } } -} \ No newline at end of file +} diff --git a/Helpers/JwtMiddleware.cs b/Helpers/JwtMiddleware.cs index dfd8608..1199dc0 100644 --- a/Helpers/JwtMiddleware.cs +++ b/Helpers/JwtMiddleware.cs @@ -4,6 +4,7 @@ using System; using System.IdentityModel.Tokens.Jwt; using System.Linq; +using System.Security.Claims; using System.Text; using System.Threading.Tasks; using WebApi.Services; @@ -26,12 +27,12 @@ public async Task Invoke(HttpContext context, IUserService userService) var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last(); if (token != null) - attachUserToContext(context, userService, token); + AttachUserToContext(context, userService, token); await _next(context); } - private void attachUserToContext(HttpContext context, IUserService userService, string token) + private void AttachUserToContext(HttpContext context, IUserService userService, string token) { try { @@ -43,15 +44,13 @@ private void attachUserToContext(HttpContext context, IUserService userService, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false, - // set clockskew to zero so tokens expire exactly at token expiration time (instead of 5 minutes later) - ClockSkew = TimeSpan.Zero + ClockSkew = TimeSpan.Zero // set clockskew to zero so tokens expire exactly at token expiration time (instead of 5 minutes later) }, out SecurityToken validatedToken); var jwtToken = (JwtSecurityToken)validatedToken; - var userId = int.Parse(jwtToken.Claims.First(x => x.Type == "id").Value); - // attach user to context on successful jwt validation - context.Items["User"] = userService.GetById(userId); + var identity = new ClaimsIdentity(jwtToken.Claims); + context.User.AddIdentity(identity); } catch { diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..8a8845e --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,16 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true + }, + "profiles": { + "WebApi": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "http://localhost:24180", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs index 71e0d8e..b5b9a83 100644 --- a/Startup.cs +++ b/Startup.cs @@ -20,7 +20,9 @@ public Startup(IConfiguration configuration) public void ConfigureServices(IServiceCollection services) { services.AddCors(); - services.AddControllers(); + services.AddControllers() + //.AddMvcOptions(x => x.Filters.Add(new AuthorizeAttribute())) //Uncomment this line to add the authorize attribute to all route by default + ; // configure strongly typed settings object services.Configure(Configuration.GetSection("AppSettings")); diff --git a/WebApi.sln b/WebApi.sln new file mode 100644 index 0000000..5bf2d32 --- /dev/null +++ b/WebApi.sln @@ -0,0 +1,17 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApi", "WebApi.csproj", "{CA2E06B1-6D12-485E-83C9-769D909E59BF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CA2E06B1-6D12-485E-83C9-769D909E59BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA2E06B1-6D12-485E-83C9-769D909E59BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA2E06B1-6D12-485E-83C9-769D909E59BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA2E06B1-6D12-485E-83C9-769D909E59BF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal