diff --git a/.gitignore b/.gitignore index 27ce9844..a6abd6bf 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ bower_components/ node_modules/ docfx_project/ debugcmd +undefined/ debugcode/ kestrel*.pid kestrel*.log diff --git a/Yavsc/build.log b/Yavsc/build.log new file mode 100644 index 00000000..949d579e --- /dev/null +++ b/Yavsc/build.log @@ -0,0 +1,796 @@ +Microsoft .NET Development Utility Mono-x64-1.0.0-rc1-16609 + + +Building Yavsc for DNX,Version=v4.5.1 +Executing script 'prebuild' in project.json +before building + Using Project dependency Yavsc 1.0.0 + Source: /home/paul/workspace/yavsc/Yavsc/project.json + + Using Package dependency Antlr 3.4.1.9004 + Source: /home/paul/.dnx/packages/Antlr/3.4.1.9004 + File: lib/Antlr3.Runtime.dll + + Using Package dependency EntityFramework.Commands 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.Commands/7.0.0-rc1-final + File: lib/dnx451/EntityFramework.Commands.dll + + Using Package dependency EntityFramework.Core 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.Core/7.0.0-rc1-final + File: lib/dnx451/EntityFramework.Core.dll + + Using Package dependency EntityFramework.MicrosoftSqlServer 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final + File: lib/net451/EntityFramework.MicrosoftSqlServer.dll + + Using Package dependency EntityFramework.Relational 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.Relational/7.0.0-rc1-final + File: lib/net451/EntityFramework.Relational.dll + + Using Package dependency EntityFramework.Relational.Design 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.Relational.Design/7.0.0-rc1-final + File: lib/dnx451/EntityFramework.Relational.Design.dll + + Using Package dependency EntityFramework.Sqlite 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/EntityFramework.Sqlite/7.0.0-rc1-final + File: lib/net451/EntityFramework.Sqlite.dll + + Using Package dependency EntityFramework7.Npgsql 3.1.0-rc1-3 + Source: /home/paul/.dnx/packages/EntityFramework7.Npgsql/3.1.0-rc1-3 + File: lib/dnx451/EntityFramework7.Npgsql.dll + + Using Package dependency EntityFramework7.Npgsql.Design 3.1.0-rc1-5 + Source: /home/paul/.dnx/packages/EntityFramework7.Npgsql.Design/3.1.0-rc1-5 + File: lib/dnx451/EntityFramework7.Npgsql.Design.dll + + Using Package dependency Google.Apis 1.11.1 + Source: /home/paul/.dnx/packages/Google.Apis/1.11.1 + File: lib/net45/Google.Apis.dll + File: lib/net45/Google.Apis.PlatformServices.dll + + Using Package dependency Google.Apis.Core 1.11.1 + Source: /home/paul/.dnx/packages/Google.Apis.Core/1.11.1 + File: lib/net45/Google.Apis.Core.dll + + Using Package dependency Ix-Async 1.2.5 + Source: /home/paul/.dnx/packages/Ix-Async/1.2.5 + File: lib/net45/System.Interactive.Async.dll + + Using Package dependency jQuery 1.6.4 + Source: /home/paul/.dnx/packages/jQuery/1.6.4 + + Using Package dependency log4net 2.0.3 + Source: /home/paul/.dnx/packages/log4net/2.0.3 + File: lib/net40-full/log4net.dll + + Using Package dependency MailKit 1.3.0-beta7 + Source: /home/paul/.dnx/packages/MailKit/1.3.0-beta7 + File: lib/net451/MailKit.dll + + Using Package dependency MarkdownDeep.NET 1.5.0 + Source: /home/paul/.dnx/packages/MarkdownDeep.NET/1.5.0 + File: lib/net451/MarkdownDeep.dll + + Using Package dependency Microsoft.AspNet.Antiforgery 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Antiforgery/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Antiforgery.dll + + Using Package dependency Microsoft.AspNet.Authentication 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authentication.dll + + Using Package dependency Microsoft.AspNet.Authentication.Cookies 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.Cookies/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authentication.Cookies.dll + + Using Package dependency Microsoft.AspNet.Authentication.Facebook 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.Facebook/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authentication.Facebook.dll + + Using Package dependency Microsoft.AspNet.Authentication.JwtBearer 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.JwtBearer/1.0.0-rc1-final + File: lib/dnx451/Microsoft.AspNet.Authentication.JwtBearer.dll + + Using Package dependency Microsoft.AspNet.Authentication.OAuth 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.OAuth/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authentication.OAuth.dll + + Using Package dependency Microsoft.AspNet.Authentication.OpenIdConnect 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.OpenIdConnect/1.0.0-rc1-final + File: lib/dnx451/Microsoft.AspNet.Authentication.OpenIdConnect.dll + + Using Package dependency Microsoft.AspNet.Authentication.Twitter 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authentication.Twitter/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authentication.Twitter.dll + + Using Package dependency Microsoft.AspNet.Authorization 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Authorization/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Authorization.dll + + Using Package dependency Microsoft.AspNet.Cors 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Cors/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Cors.dll + + Using Package dependency Microsoft.AspNet.Cryptography.Internal 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Cryptography.Internal/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Cryptography.Internal.dll + + Using Package dependency Microsoft.AspNet.Cryptography.KeyDerivation 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Cryptography.KeyDerivation/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Cryptography.KeyDerivation.dll + + Using Package dependency Microsoft.AspNet.DataProtection 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.DataProtection/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.DataProtection.dll + + Using Package dependency Microsoft.AspNet.DataProtection.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.DataProtection.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.DataProtection.Abstractions.dll + + Using Package dependency Microsoft.AspNet.DataProtection.SystemWeb 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.DataProtection.SystemWeb/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.DataProtection.SystemWeb.dll + + Using Package dependency Microsoft.AspNet.Diagnostics 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Diagnostics/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Diagnostics.dll + + Using Package dependency Microsoft.AspNet.Diagnostics.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Diagnostics.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Diagnostics.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Diagnostics.Entity 7.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Diagnostics.Entity/7.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Diagnostics.Entity.dll + + Using Package dependency Microsoft.AspNet.FileProviders.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.FileProviders.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.FileProviders.Abstractions.dll + + Using Package dependency Microsoft.AspNet.FileProviders.Physical 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.FileProviders.Physical/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.FileProviders.Physical.dll + + Using Package dependency Microsoft.AspNet.Hosting 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Hosting/1.0.0-rc1-final + File: lib/dnx451/Microsoft.AspNet.Hosting.dll + + Using Package dependency Microsoft.AspNet.Hosting.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Hosting.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Hosting.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Hosting.Server.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Hosting.Server.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Hosting.Server.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Html.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Html.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Html.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Http 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Http/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Http.dll + + Using Package dependency Microsoft.AspNet.Http.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Http.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Http.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Http.Extensions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Http.Extensions/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Http.Extensions.dll + + Using Package dependency Microsoft.AspNet.Http.Features 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Http.Features/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Http.Features.dll + + Using Package dependency Microsoft.AspNet.Identity 3.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Identity/3.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Identity.dll + + Using Package dependency Microsoft.AspNet.Identity.EntityFramework 3.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Identity.EntityFramework/3.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Identity.EntityFramework.dll + + Using Package dependency Microsoft.AspNet.IISPlatformHandler 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.IISPlatformHandler/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.IISPlatformHandler.dll + + Using Package dependency Microsoft.AspNet.JsonPatch 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.JsonPatch/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.JsonPatch.dll + + Using Package dependency Microsoft.AspNet.Localization 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Localization/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Localization.dll + + Using Package dependency Microsoft.AspNet.Mvc 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.dll + + Using Package dependency Microsoft.AspNet.Mvc.Abstractions 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Abstractions/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Abstractions.dll + + Using Package dependency Microsoft.AspNet.Mvc.ApiExplorer 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.ApiExplorer/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.ApiExplorer.dll + + Using Package dependency Microsoft.AspNet.Mvc.Core 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Core/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Core.dll + + Using Package dependency Microsoft.AspNet.Mvc.Cors 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Cors/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Cors.dll + + Using Package dependency Microsoft.AspNet.Mvc.DataAnnotations 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.DataAnnotations/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.DataAnnotations.dll + + Using Package dependency Microsoft.AspNet.Mvc.Formatters.Json 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Formatters.Json/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Formatters.Json.dll + + Using Package dependency Microsoft.AspNet.Mvc.Localization 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Localization/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Localization.dll + + Using Package dependency Microsoft.AspNet.Mvc.Razor 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Razor/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Razor.dll + + Using Package dependency Microsoft.AspNet.Mvc.Razor.Host 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.Razor.Host/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.Razor.Host.dll + + Using Package dependency Microsoft.AspNet.Mvc.TagHelpers 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.TagHelpers/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.TagHelpers.dll + + Using Package dependency Microsoft.AspNet.Mvc.ViewFeatures 6.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Mvc.ViewFeatures/6.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Mvc.ViewFeatures.dll + + Using Package dependency Microsoft.AspNet.Owin 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Owin/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Owin.dll + + Using Package dependency Microsoft.AspNet.PageExecutionInstrumentation.Interfaces 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.PageExecutionInstrumentation.Interfaces.dll + + Using Package dependency Microsoft.AspNet.Razor 4.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Razor/4.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Razor.dll + + Using Package dependency Microsoft.AspNet.Razor.Runtime 4.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Razor.Runtime/4.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Razor.Runtime.dll + + Using Package dependency Microsoft.AspNet.Razor.Runtime.Precompilation 4.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Razor.Runtime.Precompilation/4.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Razor.Runtime.Precompilation.dll + + Using Package dependency Microsoft.AspNet.Routing 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Routing/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Routing.dll + + Using Package dependency Microsoft.AspNet.Server.Kestrel 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final + File: lib/dnx451/Microsoft.AspNet.Server.Kestrel.dll + + Using Package dependency Microsoft.AspNet.Server.WebListener 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Server.WebListener/1.0.0-rc1-final + File: lib/dnx451/Microsoft.AspNet.Server.WebListener.dll + + Using Package dependency Microsoft.AspNet.Session 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Session/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Session.dll + + Using Package dependency Microsoft.AspNet.SignalR.Core 2.2.0 + Source: /home/paul/.dnx/packages/Microsoft.AspNet.SignalR.Core/2.2.0 + File: lib/net45/Microsoft.AspNet.SignalR.Core.dll + + Using Package dependency Microsoft.AspNet.SignalR.JS 2.2.0 + Source: /home/paul/.dnx/packages/Microsoft.AspNet.SignalR.JS/2.2.0 + + Using Package dependency Microsoft.AspNet.SignalR.Owin 1.2.2 + Source: /home/paul/.dnx/packages/Microsoft.AspNet.SignalR.Owin/1.2.2 + File: lib/net45/Microsoft.AspNet.SignalR.Owin.dll + + Using Package dependency Microsoft.AspNet.StaticFiles 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.StaticFiles/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.StaticFiles.dll + + Using Package dependency Microsoft.AspNet.Tooling.Razor 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Tooling.Razor/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.Tooling.Razor.dll + + Using Package dependency Microsoft.AspNet.Web.Optimization 1.1.3 + Source: /home/paul/.dnx/packages/Microsoft.AspNet.Web.Optimization/1.1.3 + File: lib/net40/System.Web.Optimization.dll + + Using Package dependency Microsoft.AspNet.WebSockets.Protocol 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.WebSockets.Protocol/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.WebSockets.Protocol.dll + + Using Package dependency Microsoft.AspNet.WebSockets.Server 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.WebSockets.Server/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.WebSockets.Server.dll + + Using Package dependency Microsoft.AspNet.WebUtilities 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.AspNet.WebUtilities/1.0.0-rc1-final + File: lib/net451/Microsoft.AspNet.WebUtilities.dll + + Using Package dependency Microsoft.AspNetCore.Authentication.Cookies 0.0.1-alpha + Source: /home/paul/.dnx/packages/Microsoft.AspNetCore.Authentication.Cookies/0.0.1-alpha + + Using Package dependency Microsoft.AspNetCore.Authentication.OAuth 0.0.1-alpha + Source: /home/paul/.dnx/packages/Microsoft.AspNetCore.Authentication.OAuth/0.0.1-alpha + + Using Package dependency Microsoft.AspNetCore.Authentication.OpenIdConnect 0.0.1-alpha + Source: /home/paul/.dnx/packages/Microsoft.AspNetCore.Authentication.OpenIdConnect/0.0.1-alpha + + Using Package dependency Microsoft.CodeAnalysis.Analyzers 1.0.0 + Source: /home/paul/.dnx/packages/Microsoft.CodeAnalysis.Analyzers/1.0.0 + + Using Package dependency Microsoft.CodeAnalysis.Common 1.1.0-rc1-20151109-01 + Source: /home/paul/.dnx/packages/Microsoft.CodeAnalysis.Common/1.1.0-rc1-20151109-01 + File: lib/net45/Microsoft.CodeAnalysis.dll + + Using Package dependency Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 + Source: /home/paul/.dnx/packages/Microsoft.CodeAnalysis.CSharp/1.1.0-rc1-20151109-01 + File: lib/net45/Microsoft.CodeAnalysis.CSharp.dll + + Using Package dependency Microsoft.Data.Sqlite 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Data.Sqlite/1.0.0-rc1-final + File: lib/net451/Microsoft.Data.Sqlite.dll + + Using Package dependency Microsoft.Dnx.Compilation.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Dnx.Compilation.Abstractions.dll + + Using Package dependency Microsoft.Dnx.Compilation.CSharp.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Dnx.Compilation.CSharp.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Dnx.Compilation.CSharp.Abstractions.dll + + Using Package dependency Microsoft.Dnx.Compilation.CSharp.Common 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Dnx.Compilation.CSharp.Common/1.0.0-rc1-final + File: lib/net451/Microsoft.Dnx.Compilation.CSharp.Common.dll + + Using Package dependency Microsoft.Extensions.Caching.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Caching.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Caching.Abstractions.dll + + Using Package dependency Microsoft.Extensions.Caching.Memory 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Caching.Memory/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Caching.Memory.dll + + Using Package dependency Microsoft.Extensions.CodeGeneration 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.CodeGeneration/1.0.0-rc1-final + File: lib/dnx451/Microsoft.Extensions.CodeGeneration.dll + + Using Package dependency Microsoft.Extensions.CodeGeneration.Core 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.CodeGeneration.Core/1.0.0-rc1-final + File: lib/dnx451/Microsoft.Extensions.CodeGeneration.Core.dll + + Using Package dependency Microsoft.Extensions.CodeGeneration.EntityFramework 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.CodeGeneration.EntityFramework/1.0.0-rc1-final + File: lib/dnx451/Microsoft.Extensions.CodeGeneration.EntityFramework.dll + + Using Package dependency Microsoft.Extensions.CodeGeneration.Templating 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.CodeGeneration.Templating/1.0.0-rc1-final + File: lib/dnx451/Microsoft.Extensions.CodeGeneration.Templating.dll + + Using Package dependency Microsoft.Extensions.CodeGenerators.Mvc 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.CodeGenerators.Mvc/1.0.0-rc1-final + File: lib/dnx451/Microsoft.Extensions.CodeGenerators.Mvc.dll + + Using Package dependency Microsoft.Extensions.Configuration 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.dll + + Using Package dependency Microsoft.Extensions.Configuration.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.Abstractions.dll + + Using Package dependency Microsoft.Extensions.Configuration.Binder 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.Binder/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.Binder.dll + + Using Package dependency Microsoft.Extensions.Configuration.CommandLine 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.CommandLine/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.CommandLine.dll + + Using Package dependency Microsoft.Extensions.Configuration.EnvironmentVariables 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.EnvironmentVariables/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.EnvironmentVariables.dll + + Using Package dependency Microsoft.Extensions.Configuration.FileExtensions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.FileExtensions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.FileExtensions.dll + + Using Package dependency Microsoft.Extensions.Configuration.FileProviderExtensions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.FileProviderExtensions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.FileProviderExtensions.dll + + Using Package dependency Microsoft.Extensions.Configuration.Json 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.Json/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.Json.dll + + Using Package dependency Microsoft.Extensions.Configuration.UserSecrets 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Configuration.UserSecrets/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Configuration.UserSecrets.dll + + Using Package dependency Microsoft.Extensions.DependencyInjection 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.DependencyInjection/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.DependencyInjection.dll + + Using Package dependency Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.DependencyInjection.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.DependencyInjection.Abstractions.dll + + Using Package dependency Microsoft.Extensions.FileSystemGlobbing 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.FileSystemGlobbing/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.FileSystemGlobbing.dll + + Using Package dependency Microsoft.Extensions.Globalization.CultureInfoCache 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Globalization.CultureInfoCache/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Globalization.CultureInfoCache.dll + + Using Package dependency Microsoft.Extensions.Localization 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Localization/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Localization.dll + + Using Package dependency Microsoft.Extensions.Localization.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Localization.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Localization.Abstractions.dll + + Using Package dependency Microsoft.Extensions.Logging 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Logging/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Logging.dll + + Using Package dependency Microsoft.Extensions.Logging.Abstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Logging.Abstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Logging.Abstractions.dll + + Using Package dependency Microsoft.Extensions.Logging.Console 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Logging.Console/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Logging.Console.dll + + Using Package dependency Microsoft.Extensions.Logging.Debug 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Logging.Debug/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Logging.Debug.dll + + Using Package dependency Microsoft.Extensions.MemoryPool 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.MemoryPool/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.MemoryPool.dll + + Using Package dependency Microsoft.Extensions.Options 0.0.1-alpha + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Options/0.0.1-alpha + + Using Package dependency Microsoft.Extensions.OptionsModel 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.OptionsModel/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.OptionsModel.dll + + Using Package dependency Microsoft.Extensions.PlatformAbstractions 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.PlatformAbstractions/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.PlatformAbstractions.dll + + Using Package dependency Microsoft.Extensions.Primitives 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.Primitives/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.Primitives.dll + + Using Package dependency Microsoft.Extensions.WebEncoders 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.WebEncoders/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.WebEncoders.dll + + Using Package dependency Microsoft.Extensions.WebEncoders.Core 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Extensions.WebEncoders.Core/1.0.0-rc1-final + File: lib/net451/Microsoft.Extensions.WebEncoders.Core.dll + + Using Package dependency Microsoft.Framework.Configuration 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Configuration/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.Configuration.dll + + Using Package dependency Microsoft.Framework.Configuration.Abstractions 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Configuration.Abstractions/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.Configuration.Abstractions.dll + + Using Package dependency Microsoft.Framework.Configuration.Binder 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Configuration.Binder/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.Configuration.Binder.dll + + Using Package dependency Microsoft.Framework.Configuration.FileExtensions 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Configuration.FileExtensions/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.Configuration.FileExtensions.dll + + Using Package dependency Microsoft.Framework.Configuration.Json 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Configuration.Json/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.Configuration.Json.dll + + Using Package dependency Microsoft.Framework.ConfigurationModel 1.0.0-beta4 + Source: /home/paul/.dnx/packages/Microsoft.Framework.ConfigurationModel/1.0.0-beta4 + File: lib/dnx451/Microsoft.Framework.ConfigurationModel.dll + + Using Package dependency Microsoft.Framework.ConfigurationModel.Interfaces 1.0.0-beta4 + Source: /home/paul/.dnx/packages/Microsoft.Framework.ConfigurationModel.Interfaces/1.0.0-beta4 + File: lib/dnx451/Microsoft.Framework.ConfigurationModel.Interfaces.dll + + Using Package dependency Microsoft.Framework.ConfigurationModel.Json 1.0.0-beta4 + Source: /home/paul/.dnx/packages/Microsoft.Framework.ConfigurationModel.Json/1.0.0-beta4 + File: lib/dnx451/Microsoft.Framework.ConfigurationModel.Json.dll + + Using Package dependency Microsoft.Framework.DependencyInjection 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.DependencyInjection/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.DependencyInjection.dll + + Using Package dependency Microsoft.Framework.DependencyInjection.Abstractions 1.0.0-beta8 + Source: /home/paul/.dnx/packages/Microsoft.Framework.DependencyInjection.Abstractions/1.0.0-beta8 + File: lib/dnx451/Microsoft.Framework.DependencyInjection.Abstractions.dll + + Using Package dependency Microsoft.Framework.Runtime.Interfaces 1.0.0-beta4 + Source: /home/paul/.dnx/packages/Microsoft.Framework.Runtime.Interfaces/1.0.0-beta4 + File: lib/dnx451/Microsoft.Framework.Runtime.Interfaces.dll + + Using Package dependency Microsoft.IdentityModel.Logging 1.0.0-rc1-211161024 + Source: /home/paul/.dnx/packages/Microsoft.IdentityModel.Logging/1.0.0-rc1-211161024 + File: lib/net451/Microsoft.IdentityModel.Logging.dll + + Using Package dependency Microsoft.IdentityModel.Protocols 2.0.0-rc1-211161024 + Source: /home/paul/.dnx/packages/Microsoft.IdentityModel.Protocols/2.0.0-rc1-211161024 + File: lib/net451/Microsoft.IdentityModel.Protocols.dll + + Using Package dependency Microsoft.IdentityModel.Protocols.OpenIdConnect 2.0.0-rc1-211161024 + Source: /home/paul/.dnx/packages/Microsoft.IdentityModel.Protocols.OpenIdConnect/2.0.0-rc1-211161024 + File: lib/net451/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + Using Package dependency Microsoft.Net.Http.Headers 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Net.Http.Headers/1.0.0-rc1-final + File: lib/net451/Microsoft.Net.Http.Headers.dll + + Using Package dependency Microsoft.Net.Http.Server 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Net.Http.Server/1.0.0-rc1-final + File: lib/net451/Microsoft.Net.Http.Server.dll + + Using Package dependency Microsoft.Net.WebSockets 1.0.0-rc1-final + Source: /home/paul/.dnx/packages/Microsoft.Net.WebSockets/1.0.0-rc1-final + File: lib/net451/Microsoft.Net.WebSockets.dll + + Using Package dependency Microsoft.NETCore.Platforms 1.0.1-beta-23516 + Source: /home/paul/.dnx/packages/Microsoft.NETCore.Platforms/1.0.1-beta-23516 + + Using Package dependency Microsoft.NETCore.Targets 1.0.1-beta-23516 + Source: /home/paul/.dnx/packages/Microsoft.NETCore.Targets/1.0.1-beta-23516 + + Using Package dependency Microsoft.Owin 2.1.0 + Source: /home/paul/.dnx/packages/Microsoft.Owin/2.1.0 + File: lib/net45/Microsoft.Owin.dll + + Using Package dependency Microsoft.Owin.Security 2.1.0 + Source: /home/paul/.dnx/packages/Microsoft.Owin.Security/2.1.0 + File: lib/net45/Microsoft.Owin.Security.dll + + Using Package dependency Microsoft.Web.Infrastructure 1.0.0 + Source: /home/paul/.dnx/packages/Microsoft.Web.Infrastructure/1.0.0 + File: lib/net40/Microsoft.Web.Infrastructure.dll + + Using Package dependency MimeKit 1.3.0-beta7 + Source: /home/paul/.dnx/packages/MimeKit/1.3.0-beta7 + File: lib/net451/BouncyCastle.dll + File: lib/net451/MimeKit.dll + + Using Package dependency Newtonsoft.Json 7.0.1 + Source: /home/paul/.dnx/packages/Newtonsoft.Json/7.0.1 + File: lib/net45/Newtonsoft.Json.dll + + Using Package dependency Npgsql 3.1.0-alpha6 + Source: /home/paul/.dnx/packages/Npgsql/3.1.0-alpha6 + File: lib/net45/Npgsql.dll + + Using Package dependency Owin 1.0.0 + Source: /home/paul/.dnx/packages/Owin/1.0.0 + File: lib/net40/Owin.dll + + Using Package dependency PayPalButtonManagerSDK 2.10.109 + Source: /home/paul/.dnx/packages/PayPalButtonManagerSDK/2.10.109 + File: lib/net20/PayPalButtonManagerSDK.dll + + Using Package dependency PayPalCoreSDK 1.7.1 + Source: /home/paul/.dnx/packages/PayPalCoreSDK/1.7.1 + File: lib/net451/PayPalCoreSDK.dll + + Using Package dependency RazorEngine 4.2.7-beta1 + Source: /home/paul/.dnx/packages/RazorEngine/4.2.7-beta1 + File: lib/net45/RazorEngine.dll + + Using Package dependency Remotion.Linq 2.0.1 + Source: /home/paul/.dnx/packages/Remotion.Linq/2.0.1 + File: lib/net45/Remotion.Linq.dll + + Using Package dependency System.Collections 4.0.0 + Source: /home/paul/.dnx/packages/System.Collections/4.0.0 + + Using Package dependency System.Collections.Immutable 1.1.37 + Source: /home/paul/.dnx/packages/System.Collections.Immutable/1.1.37 + File: lib/dotnet/System.Collections.Immutable.dll + + Using Package dependency System.Diagnostics.Debug 4.0.0 + Source: /home/paul/.dnx/packages/System.Diagnostics.Debug/4.0.0 + + Using Package dependency System.Diagnostics.DiagnosticSource 4.0.0-beta-23516 + Source: /home/paul/.dnx/packages/System.Diagnostics.DiagnosticSource/4.0.0-beta-23516 + File: lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll + + Using Package dependency System.Diagnostics.Tracing 4.0.0 + Source: /home/paul/.dnx/packages/System.Diagnostics.Tracing/4.0.0 + + Using Package dependency System.Globalization 4.0.0 + Source: /home/paul/.dnx/packages/System.Globalization/4.0.0 + + Using Package dependency System.IdentityModel.Tokens 5.0.0-rc1-211161024 + Source: /home/paul/.dnx/packages/System.IdentityModel.Tokens/5.0.0-rc1-211161024 + File: lib/net451/System.IdentityModel.Tokens.dll + + Using Package dependency System.IdentityModel.Tokens.Jwt 5.0.0-rc1-211161024 + Source: /home/paul/.dnx/packages/System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024 + File: lib/net451/System.IdentityModel.Tokens.Jwt.dll + + Using Package dependency System.IO 4.0.0 + Source: /home/paul/.dnx/packages/System.IO/4.0.0 + + Using Package dependency System.Linq 4.0.0 + Source: /home/paul/.dnx/packages/System.Linq/4.0.0 + + Using Package dependency System.Numerics.Vectors 4.1.1-beta-23516 + Source: /home/paul/.dnx/packages/System.Numerics.Vectors/4.1.1-beta-23516 + File: lib/portable-net45+win8/System.Numerics.Vectors.dll + + Using Package dependency System.Reflection 4.0.0 + Source: /home/paul/.dnx/packages/System.Reflection/4.0.0 + + Using Package dependency System.Reflection.Extensions 4.0.0 + Source: /home/paul/.dnx/packages/System.Reflection.Extensions/4.0.0 + + Using Package dependency System.Reflection.Metadata 1.1.0 + Source: /home/paul/.dnx/packages/System.Reflection.Metadata/1.1.0 + File: lib/dotnet5.2/System.Reflection.Metadata.dll + + Using Package dependency System.Reflection.Primitives 4.0.0 + Source: /home/paul/.dnx/packages/System.Reflection.Primitives/4.0.0 + + Using Package dependency System.Resources.ResourceManager 4.0.0 + Source: /home/paul/.dnx/packages/System.Resources.ResourceManager/4.0.0 + + Using Package dependency System.Runtime 4.0.0 + Source: /home/paul/.dnx/packages/System.Runtime/4.0.0 + + Using Package dependency System.Runtime.Extensions 4.0.0 + Source: /home/paul/.dnx/packages/System.Runtime.Extensions/4.0.0 + + Using Package dependency System.Runtime.InteropServices 4.0.0 + Source: /home/paul/.dnx/packages/System.Runtime.InteropServices/4.0.0 + + Using Package dependency System.Text.Encoding 4.0.0 + Source: /home/paul/.dnx/packages/System.Text.Encoding/4.0.0 + + Using Package dependency System.Text.Encoding.Extensions 4.0.0 + Source: /home/paul/.dnx/packages/System.Text.Encoding.Extensions/4.0.0 + + Using Package dependency System.Threading 4.0.0 + Source: /home/paul/.dnx/packages/System.Threading/4.0.0 + + Using Package dependency WebGrease 1.5.2 + Source: /home/paul/.dnx/packages/WebGrease/1.5.2 + File: lib/WebGrease.dll + + Using Package dependency Zlib.Portable.Signed 1.11.0 + Source: /home/paul/.dnx/packages/Zlib.Portable.Signed/1.11.0 + File: lib/portable-net4+sl5+wp8+win8+wpa81+MonoTouch+MonoAndroid/Zlib.Portable.dll + + Using Assembly dependency fx/mscorlib 4.0.0 + Source: /usr/lib/mono/4.5/mscorlib.dll + + Using Assembly dependency fx/System 4.0.0 + Source: /usr/lib/mono/4.5/System.dll + + Using Assembly dependency fx/System.Core 4.0.0 + Source: /usr/lib/mono/4.5/System.Core.dll + + Using Assembly dependency fx/Microsoft.CSharp 4.0.0 + Source: /usr/lib/mono/4.5/Microsoft.CSharp.dll + + Using Assembly dependency fx/System.Collections 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Collections.dll + + Using Assembly dependency fx/System.ComponentModel.DataAnnotations 4.0.0 + Source: /usr/lib/mono/4.5/System.ComponentModel.DataAnnotations.dll + + Using Assembly dependency fx/System.Diagnostics.Debug 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Diagnostics.Debug.dll + + Using Assembly dependency fx/System.Diagnostics.Tools 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Diagnostics.Tools.dll + + Using Assembly dependency fx/System.Globalization 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Globalization.dll + + Using Assembly dependency fx/System.Linq 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Linq.dll + + Using Assembly dependency fx/System.Linq.Expressions 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Linq.Expressions.dll + + Using Assembly dependency fx/System.Linq.Queryable 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Linq.Queryable.dll + + Using Assembly dependency fx/System.ObjectModel 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.ObjectModel.dll + + Using Assembly dependency fx/System.Reflection 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Reflection.dll + + Using Assembly dependency fx/System.Reflection.Extensions 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Reflection.Extensions.dll + + Using Assembly dependency fx/System.Resources.ResourceManager 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Resources.ResourceManager.dll + + Using Assembly dependency fx/System.Runtime 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Runtime.dll + + Using Assembly dependency fx/System.Runtime.Extensions 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Runtime.Extensions.dll + + Using Assembly dependency fx/System.Threading 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Threading.dll + + Using Assembly dependency fx/System.Data 4.0.0 + Source: /usr/lib/mono/4.5/System.Data.dll + + Using Assembly dependency fx/System.Transactions 4.0.0 + Source: /usr/lib/mono/4.5/System.Transactions.dll + + Using Assembly dependency fx/System.IO 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.IO.dll + + Using Assembly dependency fx/System.Text.Encoding 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Text.Encoding.dll + + Using Assembly dependency fx/System.Threading.Tasks 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Threading.Tasks.dll + + Using Assembly dependency fx/System.Diagnostics.Contracts 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Diagnostics.Contracts.dll + + Using Assembly dependency fx/System.Net.Http 4.0.0 + Source: /usr/lib/mono/4.5/System.Net.Http.dll + + Using Assembly dependency fx/System.Security 4.0.0 + Source: /usr/lib/mono/4.5/System.Security.dll + + Using Assembly dependency fx/System.Xml 4.0.0 + Source: /usr/lib/mono/4.5/System.Xml.dll + + Using Assembly dependency fx/System.Xml.Linq 4.0.0 + Source: /usr/lib/mono/4.5/System.Xml.Linq.dll + + Using Assembly dependency fx/System.Configuration 4.0.0 + Source: /usr/lib/mono/4.5/System.Configuration.dll + + Using Assembly dependency fx/System.Web 4.0.0 + Source: /usr/lib/mono/4.5/System.Web.dll + + Using Assembly dependency fx/System.Collections.Concurrent 4.0.0 + Source: /usr/lib/mono/4.5/Facades/System.Collections.Concurrent.dll + +Executing script 'postbuild' in project.json +after building + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time elapsed 00:00:02.4735119 +Total build time elapsed: 00:00:02.4910582 +Total projects built: 1 diff --git a/Yavsc/project.json b/Yavsc/project.json index 0bed7e4b..7a3fc2ad 100755 --- a/Yavsc/project.json +++ b/Yavsc/project.json @@ -113,8 +113,7 @@ "Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc1-final", "System.IdentityModel.Tokens": "5.0.0-rc1-208241120", "System.IdentityModel.Tokens.Jwt": "5.0.0-rc1-208241120", - "Microsoft.AspNet.Authorization": "1.0.0-rc1-final", - "AspNet.Security.OpenIdConnect.Server": "1.0.0-beta4" + "Microsoft.AspNet.Authorization": "1.0.0-rc1-final" }, "commands": { "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000", diff --git a/Yavsc/project.lock.json b/Yavsc/project.lock.json index 9906dc83..7bef13ab 100644 --- a/Yavsc/project.lock.json +++ b/Yavsc/project.lock.json @@ -12,48 +12,6 @@ "lib/Antlr3.Runtime.dll": {} } }, - "AspNet.Security.OpenIdConnect.Extensions/1.0.0-beta4": { - "type": "package", - "dependencies": { - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211161024" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - } - }, - "AspNet.Security.OpenIdConnect.Server/1.0.0-beta4": { - "type": "package", - "dependencies": { - "AspNet.Security.OpenIdConnect.Extensions": "1.0.0-beta4", - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", - "Newtonsoft.Json": "7.0.1" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - } - }, "EntityFramework.Commands/7.0.0-rc1-final": { "type": "package", "dependencies": { @@ -260,12 +218,12 @@ "Zlib.Portable.Signed": "1.11.0" }, "compile": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} }, "runtime": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} } }, "Google.Apis.Core/1.11.1": { @@ -2987,48 +2945,6 @@ "lib/Antlr3.Runtime.dll": {} } }, - "AspNet.Security.OpenIdConnect.Extensions/1.0.0-beta4": { - "type": "package", - "dependencies": { - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211161024" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - } - }, - "AspNet.Security.OpenIdConnect.Server/1.0.0-beta4": { - "type": "package", - "dependencies": { - "AspNet.Security.OpenIdConnect.Extensions": "1.0.0-beta4", - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", - "Newtonsoft.Json": "7.0.1" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - } - }, "EntityFramework.Commands/7.0.0-rc1-final": { "type": "package", "dependencies": { @@ -3235,12 +3151,12 @@ "Zlib.Portable.Signed": "1.11.0" }, "compile": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} }, "runtime": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} } }, "Google.Apis.Core/1.11.1": { @@ -5962,48 +5878,6 @@ "lib/Antlr3.Runtime.dll": {} } }, - "AspNet.Security.OpenIdConnect.Extensions/1.0.0-beta4": { - "type": "package", - "dependencies": { - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211161024" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll": {} - } - }, - "AspNet.Security.OpenIdConnect.Server/1.0.0-beta4": { - "type": "package", - "dependencies": { - "AspNet.Security.OpenIdConnect.Extensions": "1.0.0-beta4", - "Microsoft.AspNet.Authentication": "1.0.0-rc1-final", - "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc1-final", - "Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final", - "Newtonsoft.Json": "7.0.1" - }, - "frameworkAssemblies": [ - "Microsoft.CSharp", - "mscorlib", - "System", - "System.Core" - ], - "compile": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - }, - "runtime": { - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll": {} - } - }, "EntityFramework.Commands/7.0.0-rc1-final": { "type": "package", "dependencies": { @@ -6210,12 +6084,12 @@ "Zlib.Portable.Signed": "1.11.0" }, "compile": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} }, "runtime": { - "lib/net45/Google.Apis.PlatformServices.dll": {}, - "lib/net45/Google.Apis.dll": {} + "lib/net45/Google.Apis.dll": {}, + "lib/net45/Google.Apis.PlatformServices.dll": {} } }, "Google.Apis.Core/1.11.1": { @@ -8940,32 +8814,6 @@ "lib/Antlr3.Runtime.pdb" ] }, - "AspNet.Security.OpenIdConnect.Extensions/1.0.0-beta4": { - "type": "package", - "sha512": "r0r4W/922xuS06pYs5dOAN2mkpRYQ4gI9LPR6IMaDulB1LAbPNmBOj7AXc4bq50A3OZgG3Cudezn6q8RJeTscw==", - "files": [ - "AspNet.Security.OpenIdConnect.Extensions.1.0.0-beta4.nupkg", - "AspNet.Security.OpenIdConnect.Extensions.1.0.0-beta4.nupkg.sha512", - "AspNet.Security.OpenIdConnect.Extensions.nuspec", - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.dll", - "lib/dnx451/AspNet.Security.OpenIdConnect.Extensions.xml", - "lib/dnxcore50/AspNet.Security.OpenIdConnect.Extensions.dll", - "lib/dnxcore50/AspNet.Security.OpenIdConnect.Extensions.xml" - ] - }, - "AspNet.Security.OpenIdConnect.Server/1.0.0-beta4": { - "type": "package", - "sha512": "8EvftVfasTVRD2NiIuC4WTbDAUKWJr8AbCUmEyLb78tLpyFmuI1gogmmrP2gMHDIEvJyG4oJ1iXZE/xmZt3M3w==", - "files": [ - "AspNet.Security.OpenIdConnect.Server.1.0.0-beta4.nupkg", - "AspNet.Security.OpenIdConnect.Server.1.0.0-beta4.nupkg.sha512", - "AspNet.Security.OpenIdConnect.Server.nuspec", - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.dll", - "lib/dnx451/AspNet.Security.OpenIdConnect.Server.xml", - "lib/dnxcore50/AspNet.Security.OpenIdConnect.Server.dll", - "lib/dnxcore50/AspNet.Security.OpenIdConnect.Server.xml" - ] - }, "EntityFramework.Commands/7.0.0-rc1-final": { "type": "package", "serviceable": true, @@ -12176,8 +12024,7 @@ "Microsoft.AspNet.Authentication.JwtBearer >= 1.0.0-rc1-final", "System.IdentityModel.Tokens >= 5.0.0-rc1-208241120", "System.IdentityModel.Tokens.Jwt >= 5.0.0-rc1-208241120", - "Microsoft.AspNet.Authorization >= 1.0.0-rc1-final", - "AspNet.Security.OpenIdConnect.Server >= 1.0.0-beta4" + "Microsoft.AspNet.Authorization >= 1.0.0-rc1-final" ], "DNX,Version=v4.5.1": [] } diff --git a/Yavsc/src/Controllers/OAuthController.cs b/Yavsc/src/Controllers/OAuthController.cs deleted file mode 100644 index c9aa47a3..00000000 --- a/Yavsc/src/Controllers/OAuthController.cs +++ /dev/null @@ -1,348 +0,0 @@ -using System; -using System.Linq; -using System.Security.Claims; -using System.Threading; -using System.Threading.Tasks; -using AspNet.Security.OpenIdConnect.Extensions; -using AspNet.Security.OpenIdConnect.Server; -using Microsoft.AspNet.Authorization; -using Microsoft.AspNet.Builder; -using Microsoft.AspNet.DataProtection.KeyManagement; -using Microsoft.AspNet.Http.Authentication; -using Microsoft.AspNet.Identity; -using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.OptionsModel; -using Microsoft.IdentityModel.Protocols.OpenIdConnect; -using Yavsc.Extensions; -using Yavsc.Models; - -namespace Yavsc.Controllers -{ - [AllowAnonymous] - public class OAuthController : Controller - { - ApplicationDbContext _context; - UserManager _userManager; - -ILogger _logger; - private readonly SignInManager _signInManager; - private TokenAuthOptions _tokenOptions; - - public OAuthController(ApplicationDbContext context, SignInManager signInManager, IKeyManager keyManager, - IOptions tokenOptions, - UserManager userManager, - ILoggerFactory loggerFactory - ) - { - _context = context; - _signInManager = signInManager; - _tokenOptions = tokenOptions.Value; - _userManager = userManager; - _logger = loggerFactory.CreateLogger(); - } - - - [HttpGet("~/signin")] - public ActionResult SignIn(string returnUrl = null) { - // Note: the "returnUrl" parameter corresponds to the endpoint the user agent - // will be redirected to after a successful authentication and not - // the redirect_uri of the requesting client application. - if (returnUrl==null) returnUrl="/"; - ViewBag.ReturnUrl = returnUrl; - - // Note: in a real world application, you'd probably prefer creating a specific view model. - return View("SignIn", HttpContext.GetExternalProviders()); - } - - [HttpPost("~/signin")] - public IActionResult SignIn( string Provider, string ReturnUrl ) { - // Note: the "provider" parameter corresponds to the external - // authentication provider choosen by the user agent. - if (string.IsNullOrEmpty(Provider)) { - _logger.LogWarning("Provider not specified"); - return HttpBadRequest(); - } - - if (!_signInManager.GetExternalAuthenticationSchemes().Any(x=>x.AuthenticationScheme==Provider)) { - _logger.LogWarning($"Provider not found : {Provider}"); - return HttpBadRequest(); - } - - // Note: the "returnUrl" parameter corresponds to the endpoint the user agent - // will be redirected to after a successful authentication and not - // the redirect_uri of the requesting client application. - if (string.IsNullOrEmpty(ReturnUrl)) { - _logger.LogWarning("ReturnUrl not specified"); - return HttpBadRequest(); - } - - // Instruct the middleware corresponding to the requested external identity - // provider to redirect the user agent to its own authorization endpoint. - // Note: the authenticationScheme parameter must match the value configured in Startup.cs - var redirectUrl = Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = ReturnUrl }); - var properties = _signInManager.ConfigureExternalAuthenticationProperties(Provider, redirectUrl); - return new ChallengeResult(Provider, properties); - } - - - - [HttpGet("~/signout"), HttpPost("~/signout")] - public async Task SignOut() { - // Instruct the cookies middleware to delete the local cookie created - // when the user agent is redirected from the external identity provider - // after a successful authentication flow (e.g Google or Facebook). - - await HttpContext.Authentication.SignOutAsync("ServerCookie"); - } - - - - - [HttpGet("~/api/getclaims"), Produces("application/json")] - - public IActionResult GetClaims() - { - var identity = User.Identity as ClaimsIdentity; - - var claims = from c in identity.Claims - select new - { - subject = c.Subject.Name, - type = c.Type, - value = c.Value - }; - - return Ok(claims); - } - - - [HttpGet("~/connect/authorize"), HttpPost("~/connect/authorize")] - public async Task Authorize(CancellationToken cancellationToken) { - // Note: when a fatal error occurs during the request processing, an OpenID Connect response - // is prematurely forged and added to the ASP.NET context by OpenIdConnectServerHandler. - // You can safely remove this part and let ASOS automatically handle the unrecoverable errors - // by switching ApplicationCanDisplayErrors to false in Startup.cs. - var response = HttpContext.GetOpenIdConnectResponse(); - if (response != null) { - return View("OidcError", response); - } - - // Extract the authorization request from the ASP.NET environment. - var request = HttpContext.GetOpenIdConnectRequest(); - if (request == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.ServerError, - ErrorDescription = "An internal error has occurred" - }); - } - - // Note: authentication could be theorically enforced at the filter level via AuthorizeAttribute - // but this authorization endpoint accepts both GET and POST requests while the cookie middleware - // only uses 302 responses to redirect the user agent to the login page, making it incompatible with POST. - // To work around this limitation, the OpenID Connect request is automatically saved in the cache and will be - // restored by the OpenID Connect server middleware after the external authentication process has been completed. - if (!User.Identities.Any(identity => identity.IsAuthenticated)) { - return new ChallengeResult(new AuthenticationProperties { - RedirectUri = Url.Action(nameof(Authorize), new { - request_id = request.GetUniqueIdentifier() - }) - }); - } - - // Note: ASOS automatically ensures that an application corresponds to the client_id specified - // in the authorization request by calling IOpenIdConnectServerProvider.ValidateAuthorizationRequest. - // In theory, this null check shouldn't be needed, but a race condition could occur if you - // manually removed the application details from the database after the initial check made by ASOS. - var application = await GetApplicationAsync(request.ClientId, cancellationToken); - if (application == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.InvalidClient, - ErrorDescription = "Details concerning the calling client application cannot be found in the database" - }); - } - - // Note: in a real world application, you'd probably prefer creating a specific view model. - return View("Authorize", Tuple.Create(request, application)); - } - - [Authorize, HttpPost("~/connect/authorize/accept"), ValidateAntiForgeryToken] - public async Task Accept(CancellationToken cancellationToken) { - var response = HttpContext.GetOpenIdConnectResponse(); - if (response != null) { - return View("OidcError", response); - } - - var request = HttpContext.GetOpenIdConnectRequest(); - if (request == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.ServerError, - ErrorDescription = "An internal error has occurred" - }); - } - - // Create a new ClaimsIdentity containing the claims that - // will be used to create an id_token, a token or a code. - var identity = new ClaimsIdentity(OpenIdConnectServerDefaults.AuthenticationScheme); - - // Copy the claims retrieved from the external identity provider - // (e.g Google, Facebook, a WS-Fed provider or another OIDC server). - foreach (var claim in HttpContext.User.Claims) { - // Allow ClaimTypes.Name to be added in the id_token. - // ClaimTypes.NameIdentifier is automatically added, even if its - // destination is not defined or doesn't include "id_token". - // The other claims won't be visible for the client application. - /* - if (claim.Type == ClaimTypes.Name) { - claim.SetDestinations(OpenIdConnectConstants.Destinations.AccessToken, - OpenIdConnectConstants.Destinations.IdentityToken); - } - */ - if (claim.Type == ClaimTypes.Name) { - claim.WithDestination("code"); - claim.WithDestination("id_token"); - } - identity.AddClaim(claim); - } - - var application = await GetApplicationAsync(request.ClientId, cancellationToken); - if (application == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.InvalidClient, - ErrorDescription = "Details concerning the calling client application cannot be found in the database" - }); - } - - // Create a new ClaimsIdentity containing the claims associated with the application. - // Note: setting identity.Actor is not mandatory but can be useful to access - // the whole delegation chain from the resource server (see ResourceController.cs). - identity.Actor = new ClaimsIdentity(OpenIdConnectServerDefaults.AuthenticationScheme); - identity.Actor.AddClaim(ClaimTypes.NameIdentifier, application.ApplicationID); - identity.Actor.AddClaim(ClaimTypes.Name, application.DisplayName,"code id_token"); - - var properties = new AuthenticationProperties(); - - // Note: you can change the list of scopes granted - // to the client application using SetScopes: - properties.SetScopes(new[] { - /* openid: */ OpenIdConnectConstants.Scopes.OpenId, - /* email: */ OpenIdConnectConstants.Scopes.Email, - /* profile: */ OpenIdConnectConstants.Scopes.Profile, - /* api-resource-controller: */ "api-resource-controller" - }); - - // You can also limit the resources endpoints - // the access token should be issued for: - properties.SetResources(new[] { - "http://localhost:54540/" - }); - - // This call will instruct AspNet.Security.OpenIdConnect.Server to serialize - // the specified identity to build appropriate tokens (id_token and token). - // Note: you should always make sure the identities you return contain either - // a 'sub' or a 'ClaimTypes.NameIdentifier' claim. In this case, the returned - // identities always contain the name identifier returned by the external provider. - // Note: the authenticationScheme parameter must match the value configured in Startup.cs. - await HttpContext.Authentication.SignInAsync( - OpenIdConnectServerDefaults.AuthenticationScheme, - new ClaimsPrincipal(identity), properties); - - return new EmptyResult(); - } - - [Authorize, HttpPost("~/connect/authorize/deny"), ValidateAntiForgeryToken] - public IActionResult Deny(CancellationToken cancellationToken) { - var response = HttpContext.GetOpenIdConnectResponse(); - if (response != null) { - return View("OidcError", response); - } - - var request = HttpContext.GetOpenIdConnectRequest(); - if (request == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.ServerError, - ErrorDescription = "An internal error has occurred" - }); - } - - - // Notify AspNet.Security.OpenIdConnect.Server that the authorization grant has been denied. - // Note: OpenIdConnectServerHandler will automatically take care of redirecting - // the user agent to the client application using the appropriate response_mode. - HttpContext.SetOpenIdConnectResponse(new OpenIdConnectMessage { - Error = "access_denied", - ErrorDescription = "The authorization grant has been denied by the resource owner", - RedirectUri = request.RedirectUri, - State = request.State - }); - - - return new EmptyResult(); - } - - [HttpGet("~/connect/logout")] - public async Task Logout() { - var response = HttpContext.GetOpenIdConnectResponse(); - if (response != null) { - return View("OidcError", response); - } - - // When invoked, the logout endpoint might receive an unauthenticated request if the server cookie has expired. - // When the client application sends an id_token_hint parameter, the corresponding identity can be retrieved - // using AuthenticateAsync or using User when the authorization server is declared as AuthenticationMode.Active. - var identity = await HttpContext.Authentication.AuthenticateAsync(OpenIdConnectServerDefaults.AuthenticationScheme); - - var request = HttpContext.GetOpenIdConnectRequest(); - if (request == null) { - return View("OidcError", new OpenIdConnectMessage { - Error = OpenIdConnectConstants.Errors.ServerError, - ErrorDescription = "An internal error has occurred" - }); - } - - return View("Logout", Tuple.Create(request, identity)); - } - - [HttpPost("~/connect/logout")] - [ValidateAntiForgeryToken] - public async Task Logout(CancellationToken cancellationToken) { - // Instruct the cookies middleware to delete the local cookie created - // when the user agent is redirected from the external identity provider - // after a successful authentication flow (e.g Google or Facebook). - await HttpContext.Authentication.SignOutAsync("ServerCookie"); - - // This call will instruct AspNet.Security.OpenIdConnect.Server to serialize - // the specified identity to build appropriate tokens (id_token and token). - // Note: you should always make sure the identities you return contain either - // a 'sub' or a 'ClaimTypes.NameIdentifier' claim. In this case, the returned - // identities always contain the name identifier returned by the external provider. - await HttpContext.Authentication.SignOutAsync(OpenIdConnectServerDefaults.AuthenticationScheme); - } - - protected virtual Task GetApplicationAsync(string identifier, CancellationToken cancellationToken) - { - // Retrieve the application details corresponding to the requested client_id. - _logger.LogWarning($"Ap count : {_context.Applications.Count()}"); - return (from application in _context.Applications - where application.ApplicationID == identifier - select application).SingleOrDefaultAsync(cancellationToken); - } -private async Task GetCurrentUserAsync() - { - return await _userManager.FindByIdAsync(HttpContext.User.GetUserId()); - } - - private IActionResult RedirectToLocal(string returnUrl) - { - if (Url.IsLocalUrl(returnUrl)) - { - return Redirect(returnUrl); - } - else - { - return RedirectToAction(nameof(HomeController.Index), "Home"); - } - } - } -} \ No newline at end of file diff --git a/Yavsc/src/Providers/OAuthProvider.cs b/Yavsc/src/Providers/OAuthProvider.cs deleted file mode 100644 index 725f4e78..00000000 --- a/Yavsc/src/Providers/OAuthProvider.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using AspNet.Security.OpenIdConnect.Extensions; -using AspNet.Security.OpenIdConnect.Server; -using Microsoft.Data.Entity; -using Microsoft.Extensions.DependencyInjection; -using Yavsc.Models; - -namespace Yavsc.Providers { - public sealed class OIAuthorizationProvider : OpenIdConnectServerProvider { - public override Task MatchEndpoint(MatchEndpointContext context) { - // Note: by default, OpenIdConnectServerHandler only handles authorization requests made to the authorization endpoint. - // This context handler uses a more relaxed policy that allows extracting authorization requests received at - // /connect/authorize/accept and /connect/authorize/deny (see AuthorizationController.cs for more information). - if (context.Options.AuthorizationEndpointPath.HasValue && - context.Request.Path.StartsWithSegments(context.Options.AuthorizationEndpointPath)) { - context.MatchesAuthorizationEndpoint(); - } - - return Task.FromResult(null); - } - - public override async Task ValidateAuthorizationRequest(ValidateAuthorizationRequestContext context) { - // Note: the OpenID Connect server middleware supports the authorization code, implicit and hybrid flows - // but this authorization provider only accepts response_type=code authorization/authentication requests. - // You may consider relaxing it to support the implicit or hybrid flows. In this case, consider adding - // checks rejecting implicit/hybrid authorization requests when the client is a confidential application. - if (!context.Request.IsAuthorizationCodeFlow()) { - context.Rejected( - error: OpenIdConnectConstants.Errors.UnsupportedResponseType, - description: "Only the authorization code flow is supported by this authorization server"); - - return; - } - - var database = context.HttpContext.RequestServices.GetRequiredService(); - - // Retrieve the application details corresponding to the requested client_id. - var application = await (from entity in database.Applications - where entity.ApplicationID == context.ClientId - select entity).SingleOrDefaultAsync(context.HttpContext.RequestAborted); - - if (application == null) { - context.Rejected( - error: OpenIdConnectConstants.Errors.InvalidClient, - description: "Application not found in the database: ensure that your client_id is correct"); - - return; - } - - if (!string.IsNullOrEmpty(context.Request.RedirectUri) && - !string.Equals(context.Request.RedirectUri, application.RedirectUri, StringComparison.Ordinal)) { - context.Rejected( - error: OpenIdConnectConstants.Errors.InvalidClient, - description: "Invalid redirect_uri"); - - return; - } - - context.Validated(); - } - - public override async Task ValidateTokenRequest(ValidateTokenRequestContext context) { - // Note: the OpenID Connect server middleware supports authorization code, refresh token, client credentials - // and resource owner password credentials grant types but this authorization provider uses a safer policy - // rejecting the last two ones. You may consider relaxing it to support the ROPC or client credentials grant types. - if (!context.Request.IsAuthorizationCodeGrantType() && !context.Request.IsRefreshTokenGrantType()) { - context.Rejected( - error: OpenIdConnectConstants.Errors.UnsupportedGrantType, - description: "Only authorization code and refresh token grant types " + - "are accepted by this authorization server"); - - return; - } - - // Note: client authentication is not mandatory for non-confidential client applications like mobile apps - // (except when using the client credentials grant type) but this authorization server uses a safer policy - // that makes client authentication mandatory and returns an error if client_id or client_secret is missing. - // You may consider relaxing it to support the resource owner password credentials grant type - // with JavaScript or desktop applications, where client credentials cannot be safely stored. - // In this case, call context.Skip() to inform the server middleware the client is not trusted. - if (string.IsNullOrEmpty(context.Request.ClientId) || string.IsNullOrEmpty(context.Request.ClientSecret)) { - context.Rejected( - error: OpenIdConnectConstants.Errors.InvalidRequest, - description: "Missing credentials: ensure that your credentials were correctly " + - "flowed in the request body or in the authorization header"); - - return; - } - - var database = context.HttpContext.RequestServices.GetRequiredService(); - - // Retrieve the application details corresponding to the requested client_id. - var application = await (from entity in database.Applications - where entity.ApplicationID == context.ClientId - select entity).SingleOrDefaultAsync(context.HttpContext.RequestAborted); - - if (application == null) { - context.Rejected( - error: OpenIdConnectConstants.Errors.InvalidClient, - description: "Application not found in the database: ensure that your client_id is correct"); - - return; - } - - if (!string.Equals(context.Request.ClientSecret, application.Secret, StringComparison.Ordinal)) { - context.Rejected( - error: OpenIdConnectConstants.Errors.InvalidClient, - description: "Invalid credentials: ensure that you specified a correct client_secret"); - - return; - } - - context.Validated(); - } - - - } -} diff --git a/Yavsc/src/Startup.cs b/Yavsc/src/Startup.cs index cae0971f..a3cb2043 100755 --- a/Yavsc/src/Startup.cs +++ b/Yavsc/src/Startup.cs @@ -8,12 +8,10 @@ using System.Security.Claims; using System.Threading.Tasks; using System.Web; using System.Web.Optimization; -using AspNet.Security.OpenIdConnect.Extensions; using Microsoft.AspNet.Authentication; using Microsoft.AspNet.Authentication.Cookies; using Microsoft.AspNet.Authentication.JwtBearer; using Microsoft.AspNet.Authentication.OAuth; -using Microsoft.AspNet.Authentication.OpenIdConnect; using Microsoft.AspNet.Authorization; using Microsoft.AspNet.Builder; using Microsoft.AspNet.DataProtection.Infrastructure; @@ -36,13 +34,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.PlatformAbstractions; using Microsoft.Extensions.WebEncoders; -using Microsoft.IdentityModel.Protocols.OpenIdConnect; using Microsoft.Net.Http.Headers; using Yavsc.Auth; using Yavsc.Extensions; using Yavsc.Formatters; using Yavsc.Models; -using Yavsc.Providers; using Yavsc.Services; @@ -233,10 +229,6 @@ namespace Yavsc { options.AddPolicy("AdministratorOnly", policy => policy.RequireRole(Constants.AdminGroupName)); options.AddPolicy("FrontOffice", policy => policy.RequireRole(Constants.FrontOfficeGroupName)); - options.AddPolicy("API", policy => { - policy.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme); - policy.RequireClaim(OpenIdConnectConstants.Claims.Scope, "api-resource-controller"); - }); // options.AddPolicy("EmployeeId", policy => policy.RequireClaim("EmployeeId", "123", "456")); // options.AddPolicy("BuildingEntry", policy => policy.Requirements.Add(new OfficeEntryRequirement())); }); @@ -354,6 +346,7 @@ namespace Yavsc SaveTokensAsClaims = true, UserInformationEndpoint = "https://www.googleapis.com/plus/v1/people/me", }; + var gvents = new OAuthEvents(); googleOptions.Events = new OAuthEvents @@ -374,10 +367,6 @@ namespace Yavsc googleOptions.Scope.Add("https://www.googleapis.com/auth/calendar"); - app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear()); - - app.UseStaticFiles().UseWebSockets(); - var udirinfo = new DirectoryInfo(Configuration["Site:UserFiles:RootDir"]); if (!udirinfo.Exists) throw new Exception($"Configuration value for Site:UserFiles:RootDir : {udirinfo.FullName}"); @@ -390,38 +379,30 @@ namespace Yavsc EnableDirectoryBrowsing = true }); + + app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear()); + + app.UseStaticFiles().UseWebSockets(); + + app.UseRequestLocalization(localizationOptions.Value, (RequestCulture)new RequestCulture((string)"fr")); + app.UseIdentity(); - app.UseWhen(context => context.Request.Path.StartsWithSegments(new PathString("/api")), branch => { - - branch.UseJwtBearerAuthentication(options => { - options.AutomaticAuthenticate = true; - options.AutomaticChallenge = true; - options.RequireHttpsMetadata = false; - - options.Audience = "http://localhost:54540/"; - options.Authority = "http://localhost:54540/"; - }); - }); // Create a new branch where the registered middleware will be executed only for non API calls. - app.UseWhen(context => !context.Request.Path.StartsWithSegments(new PathString("/api")), branch => { - - // Insert a new cookies middleware in the pipeline to store - // the user identity returned by the external identity provider. - branch.UseCookieAuthentication(options => { + app.UseCookieAuthentication(options => { options.AutomaticAuthenticate = true; options.AutomaticChallenge = true; options.AuthenticationScheme = "ServerCookie"; options.CookieName = CookieAuthenticationDefaults.CookiePrefix + "ServerCookie"; options.ExpireTimeSpan = TimeSpan.FromMinutes(5); - options.LoginPath = new PathString("/signin"); + options.LoginPath = new PathString("/Account/Login"); }); - branch.UseMiddleware(googleOptions); + app.UseMiddleware(googleOptions); // Facebook - branch.UseFacebookAuthentication(options => + app.UseFacebookAuthentication(options => { options.AppId = Configuration["Authentication:Facebook:AppId"]; options.AppSecret = Configuration["Authentication:Facebook:AppSecret"]; @@ -429,133 +410,6 @@ namespace Yavsc options.UserInformationEndpoint = "https://graph.facebook.com/v2.5/me?fields=id,name,email,first_name,last_name"; }); - }); - -/* - app.UseCookieAuthentication(options => - { - options.LoginPath = "/signin"; - options.AuthenticationScheme = "ServerCookie"; - options.AutomaticAuthenticate = true; - options.AutomaticChallenge = true; - - options.CookieName = CookieAuthenticationDefaults.CookiePrefix + "ServerCookie"; - - options.ExpireTimeSpan = TimeSpan.FromHours( -(double)double.Parse( -(string)Configuration[(string)"DataProtection:ExpiresInHours"]) - ); - }); */ - - - /* app.UseOAuthAuthentication(options => { - options.AutomaticAuthenticate = true; - options.AuthenticationScheme = "oidc" ; - options.ClientId = "resource_server"; - options.ClientSecret = "875sqd4s5d748z78z7ds1ff8zz8814ff88ed8ea4z4zzd"; - options.CallbackPath = new PathString("/signin-oidc"); - options.Events = new OAuthEvents - { - OnRedirectToAuthorizationEndpoint = context => { - var query = QueryHelpers.AddQueryString(context.RedirectUri, "resource","https://dev.pschneider.fr"); - context.Response.Redirect(query); - return Task.FromResult(0); - } - }; - options.ClaimsIssuer = "https://dev.pschneider.fr/"; - options.AuthorizationEndpoint = "https://dev.pschneider.fr/connect/authorize/"; - options.TokenEndpoint = "https://dev.pschneider.fr/connect/authorize/accept"; - }); */ - -/**/ - - // Alternatively, you can also use the introspection middleware. - // Using it is recommended if your resource server is in a - // different application/separated from the authorization server. - // - // branch.UseOAuthIntrospection(new OAuthIntrospectionOptions { - // AutomaticAuthenticate = true, - // AutomaticChallenge = true, - // Authority = "http://localhost:54540/", - // Audiences = { "resource_server" }, - // ClientId = "resource_server", - // ClientSecret = "875sqd4s5d748z78z7ds1ff8zz8814ff88ed8ea4z4zzd" - // }); - - - - app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear()); - - app.UseStaticFiles().UseWebSockets(); - - app.UseOpenIdConnectServer(options => { - options.Provider = new OIAuthorizationProvider() - - /* { - OnValidateAuthorizationRequest = context => { - // Note: you MUST NOT validate the request if client_id is invalid or if redirect_uri - // doesn't correspond to a trusted URL associated with the client application. - // You SHOULD also strongly consider validating the type of the client application - // (public or confidential) to prevent code flow -> implicit flow downgrade attacks. - if (string.Equals(context.ClientId, "client_id", StringComparison.Ordinal)) { - context.Validated(); - } - - // Note: if Validate() is not explicitly called, - // the request is automatically rejected. - return Task.FromResult(0); - } */; - - - // Register the certificate used to sign the JWT tokens. - /* options.SigningCredentials.AddCertificate( - assembly: typeof(Startup).GetTypeInfo().Assembly, - resource: "Mvc.Server.Certificate.pfx", - password: "Owin.Security.OpenIdConnect.Server"); */ - - // options.SigningCredentials.AddKey(key); - // Note: see AuthorizationController.cs for more - // information concerning ApplicationCanDisplayErrors. - options.ApplicationCanDisplayErrors = true; - options.AllowInsecureHttp = true; - options.ClaimsIssuer = "http://dev.pschneider.fr"; - options.Description.DisplayName = "DEV OIDC server"; - options.AuthorizationEndpointPath = new PathString("/connect/authorize"); - options.TokenEndpointPath = new PathString("/connect/token"); - options.UseSlidingExpiration = true; - options.AuthenticationScheme = "oidc"; - options.LogoutEndpointPath = new PathString("/connect/logout"); - /* options.ValidationEndpointPath = new PathString("/connect/introspect"); */ - - }); - - /* app.UseOpenIdConnectAuthentication(options => { - options.AuthenticationScheme = OpenIdConnectDefaults.AuthenticationScheme; - options.RequireHttpsMetadata = false; - - // Note: these settings must match the application details - // inserted in the database at the server level. - options.ClientId = "016c5ae4-f4cd-40e3-b250-13701c871ecd"; - options.ClientSecret = "blahblah"; - options.PostLogoutRedirectUri = "/MobileLogout"; - - // Use the authorization code flow. - options.ResponseType = OpenIdConnectResponseTypes.Code; - - // Note: setting the Authority allows the OIDC client middleware to automatically - // retrieve the identity provider's configuration and spare you from setting - // the different endpoints URIs or the token validation parameters explicitly. - options.Authority = "http://dev.pschneider.fr/"; - - // Note: the resource property represents the different endpoints the - // access token should be issued for (values must be space-delimited). - options.Resource = "http://dev.pschneider.fr/"; - options.Scope.Add("api-resource-controller"); - });*/ - - app.UseRequestLocalization(localizationOptions.Value, (RequestCulture)new RequestCulture((string)"fr")); - - // app.UseMiddleware(new List{"AspNet.Identity.SecurityStamp"}); /* Generic OAuth (here GitHub): options.Notifications = new OAuthAuthenticationNotifications @@ -630,5 +484,4 @@ namespace Yavsc public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run(args); } - }