Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net UseExternalSignInCookie不是Owin.IAppBuilder的成员_Vb.net_Asp.net Mvc 5_Owin - Fatal编程技术网

Vb.net UseExternalSignInCookie不是Owin.IAppBuilder的成员

Vb.net UseExternalSignInCookie不是Owin.IAppBuilder的成员,vb.net,asp.net-mvc-5,owin,Vb.net,Asp.net Mvc 5,Owin,我有两个VS 2013 MVC 5 SPA web项目。这两个模板都是新创建的,尚未修改(即仍然是普通模板)。其中一个有效,另一个无效。我能看到的唯一区别是,一个项目是在一个从VS 2010升级到VS 2012再升级到2013的项目中创建的,是解决方案中大约60-70个项目之一。另一个是新创建的解决方案,其中MVC应用程序是其中唯一的项目 新的MVC应用程序在其自己的解决方案中可以正常工作,但是,添加到升级项目中的MVC应用程序出现以下编译时错误: 'UseExternalSignInCooki

我有两个VS 2013 MVC 5 SPA web项目。这两个模板都是新创建的,尚未修改(即仍然是普通模板)。其中一个有效,另一个无效。我能看到的唯一区别是,一个项目是在一个从VS 2010升级到VS 2012再升级到2013的项目中创建的,是解决方案中大约60-70个项目之一。另一个是新创建的解决方案,其中MVC应用程序是其中唯一的项目

新的MVC应用程序在其自己的解决方案中可以正常工作,但是,添加到升级项目中的MVC应用程序出现以下编译时错误:

'UseExternalSignInCookie' is not a member of 'Owin.IAppBuilder'. ...\Mvc5UI\App_Start\Startup.Auth.vb
'UseOAuthBearerTokens' is not a member of 'Owin.IAppBuilder'. ...\Mvc5UI\App_Start\Startup.Auth.vb
'GetExternalAuthenticationTypes' is not a member of 'Microsoft.Owin.Security.IAuthenticationManager'. ...\Mvc5UI\Controllers\AccountController.vb
出现问题的代码(Startup.Auth.vb):

和(AccountController.vb)


这段代码在升级的解决方案和新构建的解决方案中都是相同的,因此存在一些环境问题。我已确保NuGet软件包的设置正确。我发现最有趣的事情(可能是我的误解)是,当我探索
IAppBuilder
的程序集元数据时,我没有看到任何引用的方法,因此错误是有意义的。然而,问题变成了,为什么它在新创建的MVC应用程序中工作?

当我写这个问题时,我能够确定答案。
UseExternalSignInCookie
useauthBearTokens
方法实际上是IAppBuilder上的扩展方法,这就是我感到困惑的原因。这些扩展方法位于Microsoft.Owin.Security.Cookies中,显然未正确引用

在弄清楚这一点之后,当我查看项目引用时,我注意到Microsoft.AspNet.Identity.Owin程序集引用已被破坏,因此我使用
update package-reinstall Microsoft.AspNet.Identity.Owin
package manager命令重新安装了该程序包,然后一切都开始工作


我仍然不知道为什么一开始就坏了,但现在它正在工作。

我遇到了类似的问题,命令解决了我的问题,谢谢
Public Sub ConfigureAuth(app As IAppBuilder)
     '...
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie)
    app.UseOAuthBearerTokens(OAuthOptions)
    '...
End Sub
Public Function GetExternalLogins(returnUrl As String, Optional generateState As Boolean = False) As IEnumerable(Of ExternalLoginViewModel)
    Dim descriptions As IEnumerable(Of AuthenticationDescription) = Authentication.GetExternalAuthenticationTypes()
    '...
End Sub