我们通过在ASP.NET 5中进行身份验证而感到困惑。In this security sample,我们看到了这种类型的事情:
HttpContext
但是,在我们的项目中,Authentication
没有.dnx\packages\Microsoft.AspNet.Http
属性,我们会收到以下错误:
Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException:C:\ myApp \ Startup.cs(71,46):错误CS1061:
' HttpContext的'不包含'身份验证'的定义并且没有扩展方法'身份验证'接受类型' HttpContext'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
所以,我们查看了源代码,发现它是here inside the HttpAbstractions
assembly。所以,我们将程序集添加到我们的项目中。
不幸的是,我们现在收到以下错误:
Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException:C:\ myApp \ Startup.cs(43,41):错误CS0433:
类型' IApplicationBuilder'存在于Microsoft.AspNet.Http.Abstractions,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'和' Microsoft.AspNet.Http,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'
足够公平。我们如何要求编译器使用一个程序集而不是另一个程序集用于此特定类型?我们已尝试删除dnu restore
,但它仅在public string savemagic(int i)
{
CheckBox tickbox = this.Controls.Find("ccheatcbox" + i.ToString(), true).FirstOrDefault() as CheckBox;
if (tickbox.Checked) {
TextBox namebox = this.Controls.Find("ccheatname" + i.ToString(), true).FirstOrDefault() as TextBox;
ComboBox byteselect = this.Controls.Find("ccheatbytebox" + i.ToString(), true).FirstOrDefault() as ComboBox;
TextBox offsetbox = this.Controls.Find("ccheatofsetbox" + i.ToString(), true).FirstOrDefault() as TextBox;
TextBox bytebox = this.Controls.Find("ccheatbytes" + i.ToString(), true).FirstOrDefault() as TextBox;
string Cheats= string.Format("{0} - {1} - {2}\n",namebox.Text, offsetbox.Text, bytebox.Text);
return Cheats;
}
return "";
}
之后返回。
答案 0 :(得分:3)
正如ASP.NET团队所说,你可能已经越过了流媒体#34;请确保您following the breaking changes并且不包含多个beta
版本的软件包(请确保您不同时拥有beta4
和beta5
例如,引用 - 最简单的检查方法是搜索你的project.lock.json。)最常见的事故来自使用.Interfaces
包,因为大多数包已经重命名为.Abstractions
,但那里已经有其他程序集命名更改(以及删除!)。
当您无法通过已配置的服务器和正在运行的dnvm
版本访问NuGet软件包时,也会出现此错误。 (最近有一个更新dnvm
我必须升级才能使用最新的软件包;似乎即使在单个测试版号内,流仍然可以越过!)让VS2015使用特定的{{ 1}},可能需要dnvm
:
global.json
答案 1 :(得分:1)
Matt DeKrey是对的。我不需要越过溪流。简而言之,我需要beta6
并且在beta4
上。以下是要修复的步骤:
现在看起来像这样
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
"Microsoft.AspNet.Mvc": "6.0.0-beta6",
"EntityFramework.SqlServer": "7.0.0-beta6",
"EntityFramework.InMemory": "7.0.0-beta6",
"Microsoft.AspNet.Identity": "3.0.0-beta6"
}
重要的是,我需要将Nuget.config文件添加到我的存储库的根目录,因为beta6
尚未在NuGet中。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" />
<add key="NuGet" value="https://nuget.org/api/v2/" />
</packageSources>
</configuration>
AspNetVNext
条目是我们在Default Unstable
运行时看到的dnvm
条目。