无法解析符号 'Owin'
Cannot resolve symbol 'Owin'
我目前正在尝试在 AngularJS 单页应用程序中实施 AspNet.Identity 身份验证。
奇怪的是,在我的 ApplicationUserManager class 中,我想使用 Microsoft.Owin 和 Microsoft.AspNet.Identity.Owin 但在这两种情况下我都会收到 "cannot resolve symbol 'Owin'" 错误消息。
有谁知道发生了什么事吗?
我已将依赖项包含在我的 project.json 中并下载了软件包。
ApplicationUserManager class 的简化版本是这样的:
using Matimez.Models;
using Matimez.Models.Users;
using Microsoft.AspNet.Identity.Owin; //Error message
using Microsoft.Owin; //Error message
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
public class ApplicationUserManager : UserManager<NewUser>
{
public ApplicationUserManager(IUserStore<NewUser> store)
: base(store)
{
}
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var appDbContext = context.Get<MyAppContext>();
var appUserManager = new ApplicationUserManager(new UserStore<NewUser>(appDbContext));
return appUserManager;
}
}
下面是我的 project.json 中的依赖项,如下所示:
"dependencies": {
"EntityFramework": "7.0.0-beta4",
"EntityFramework.Commands": "7.0.0-beta4",
"EntityFramework.SqlServer": "7.0.0-beta4",
"MyApp.Models": "1.0.0-*",
"MyApp.Services": "1.0.0-*",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta4",
"Microsoft.AspNet.Identity": "3.0.0-beta4",
"Microsoft.AspNet.Mvc": "6.0.0-beta4",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
"Microsoft.AspNet.WebApi.Owin": "5.2.2",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.Logging": "1.0.0-beta4",
"Microsoft.Framework.Logging.Console": "1.0.0-beta4",
"Microsoft.Owin": "3.0.1",
"Microsoft.Owin.Security": "3.0.1",
"Microsoft.Owin.Security.Cookies": "3.0.1",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta4",
"Microsoft.AspNet.Identity.Owin": "2.2.1"
仅供参考,我使用的是 VS Community 2015
更新:
多亏了 Behnaz 的建议,我安装了必要的软件包,显然它起作用了。可能其中一个不见了。
但是现在的问题是存在于 Microsoft.AspNet.Identity 和 Microsoft.AspNet.Identity 中的 UserManager class 的模糊引用。核心.
即使我没有 Microsoft.AspNet.Identity.Core 依赖项,Microsoft.AspNet.Identity.Owin... 也引用了它,从而创建了这个奇怪的循环。此外,删除 Microsoft.AspNet.Identity 将不起作用,因为 Microsoft.AspNet.Identity.EntityFramework 中也引用了它。我该如何解决这个问题?
您需要安装一些软件包才能使用 "Owin":
Microsoft.AspNet.Identity.Owin
Microsoft.AspNet.Identity.EntityFramework
Microsoft.Owin.Host.SystemWeb
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Cors
从工具菜单中,select 库包管理器,然后单击包管理器控制台,然后使用 Install-Package
命令安装包:
Install-Package Microsoft.AspNet.Identity.Owin
您可以在 Adding ASP.NET Identity to an Empty or Existing Web Forms Project 中找到更多信息。
我目前正在尝试在 AngularJS 单页应用程序中实施 AspNet.Identity 身份验证。 奇怪的是,在我的 ApplicationUserManager class 中,我想使用 Microsoft.Owin 和 Microsoft.AspNet.Identity.Owin 但在这两种情况下我都会收到 "cannot resolve symbol 'Owin'" 错误消息。
有谁知道发生了什么事吗? 我已将依赖项包含在我的 project.json 中并下载了软件包。 ApplicationUserManager class 的简化版本是这样的:
using Matimez.Models;
using Matimez.Models.Users;
using Microsoft.AspNet.Identity.Owin; //Error message
using Microsoft.Owin; //Error message
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
public class ApplicationUserManager : UserManager<NewUser>
{
public ApplicationUserManager(IUserStore<NewUser> store)
: base(store)
{
}
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var appDbContext = context.Get<MyAppContext>();
var appUserManager = new ApplicationUserManager(new UserStore<NewUser>(appDbContext));
return appUserManager;
}
}
下面是我的 project.json 中的依赖项,如下所示:
"dependencies": {
"EntityFramework": "7.0.0-beta4",
"EntityFramework.Commands": "7.0.0-beta4",
"EntityFramework.SqlServer": "7.0.0-beta4",
"MyApp.Models": "1.0.0-*",
"MyApp.Services": "1.0.0-*",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta4",
"Microsoft.AspNet.Identity": "3.0.0-beta4",
"Microsoft.AspNet.Mvc": "6.0.0-beta4",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
"Microsoft.AspNet.WebApi.Owin": "5.2.2",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.Logging": "1.0.0-beta4",
"Microsoft.Framework.Logging.Console": "1.0.0-beta4",
"Microsoft.Owin": "3.0.1",
"Microsoft.Owin.Security": "3.0.1",
"Microsoft.Owin.Security.Cookies": "3.0.1",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta4",
"Microsoft.AspNet.Identity.Owin": "2.2.1"
仅供参考,我使用的是 VS Community 2015
更新:
多亏了 Behnaz 的建议,我安装了必要的软件包,显然它起作用了。可能其中一个不见了。
但是现在的问题是存在于 Microsoft.AspNet.Identity 和 Microsoft.AspNet.Identity 中的 UserManager class 的模糊引用。核心.
即使我没有 Microsoft.AspNet.Identity.Core 依赖项,Microsoft.AspNet.Identity.Owin... 也引用了它,从而创建了这个奇怪的循环。此外,删除 Microsoft.AspNet.Identity 将不起作用,因为 Microsoft.AspNet.Identity.EntityFramework 中也引用了它。我该如何解决这个问题?
您需要安装一些软件包才能使用 "Owin":
Microsoft.AspNet.Identity.Owin
Microsoft.AspNet.Identity.EntityFramework
Microsoft.Owin.Host.SystemWeb
Microsoft.AspNet.WebApi.Owin
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Cors
从工具菜单中,select 库包管理器,然后单击包管理器控制台,然后使用 Install-Package
命令安装包:
Install-Package Microsoft.AspNet.Identity.Owin
您可以在 Adding ASP.NET Identity to an Empty or Existing Web Forms Project 中找到更多信息。