gpt4 book ai didi

vb.net - UseExternalSignInCookie 不是 Owin.IAppBuilder 的成员

转载 作者:行者123 更新时间:2023-12-04 11:20:32 25 4
gpt4 key购买 nike

我有两个 VS 2013 MVC 5 SPA web 项目。两者都是新创建的并且没有被修改(即仍然是 vanilla 模板)。其中一种有效,一种无效。我能看到的唯一区别是,一个是在从 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):
Public Sub ConfigureAuth(app As IAppBuilder)
'...
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie)
app.UseOAuthBearerTokens(OAuthOptions)
'...
End Sub

和 (AccountController.vb)
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

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

最佳答案

在我写问题的时候,我能够确定答案。 UseExternalSignInCookieUseOAuthBearerTokens方法实际上是 IAppBuilder 上的扩展方法,这就是我感到困惑的原因。这些扩展方法可以在 Microsoft.Owin.Security.Cookies 中找到,但显然没有被正确引用。

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

我仍然不确定为什么它一开始就被破坏了,但现在它正在起作用。

关于vb.net - UseExternalSignInCookie 不是 Owin.IAppBuilder 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com