Мы путаем через делать проверку подлинности в ASP.NET 5. In this security sample, мы видим, этот тип вещи:IApplicationBuilder существует в обоих Microsoft.AspNet.Http.Abstractions и Microsoft.AspNet.Http
app.Run(async context =>
{
var types = context.Authentication.GetAuthenticationSchemes();
}
Initial Проблема
В нашем проекте, однако HttpContext
не имеет Authentication
собственности и мы получим следующее сообщение об ошибке:
Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\myApp\Startup.cs(71,46): error CS1061:
'HttpContext' does not contain a definition for 'Authentication' and no extension method 'Authentication' accepting a first argument of type 'HttpContext' could be found (are you missing a using directive or an assembly reference?)
Итак, мы посмотрели на источник и обнаружили, что его here inside the HttpAbstractions
assembly. Итак, мы добавили эту сборку в наш проект.
Последующий Проблема
К сожалению, мы теперь получить следующее сообщение об ошибке:
Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\myApp\Startup.cs(43,31): error CS0433:
The type 'IApplicationBuilder' exists in both 'Microsoft.AspNet.Http.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'Microsoft.AspNet.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
Вопрос
достаточно справедливой. Как мы можем попросить компилятор использовать одну сборку, но не другую для этого конкретного типа? Мы пробовали удалить .dnx\packages\Microsoft.AspNet.Http
, но он просто возвращается после dnu restore
.
Это мой текущий проект.json.lock: https://github.com/bigfont/mylocal-farm/blob/auth/myLocalFarm/src/farmApi/project.lock.json –
Я не уверен, как убедитесь, что у нас нет ссылок на «бета4» и «бета5». Мы попытались удалить все ссылки на 'beta4' из нашего project.json, и мы продолжаем испытывать ту же проблему. –
Когда вы говорите: «Убедитесь, что у вас нет ссылок« beta4 »и« бета5 », на какие зависимости вы ссылаетесь? То есть, версии бета-версии и' beta5', какие пакеты? Я не уверен какие пакеты нам нужно проверить, чтобы убедиться, что мы не пересекаем потоки. –