好的,大师们,这是我的问题。
我在 Visual Studio 2012 中创建了一个 asp.net VB 项目。为简单起见,我创建了一个新项目。
我添加了我的 facebook api 信息(用于身份验证)
Facebook 身份验证有效。
我使用 NuGet 接口来更新 openAuth。Facebook 身份验证仍然有效。
我使用 NuGet 更新实体框架(升级到哪个版本都没有关系)并且 dotnet open auth 不再有效。我的问题是运行时错误,而 registerexternallogin.aspx 检查本地使用是否已登录。这是 registerExternalLogin.aspx 中的代码行(由 Visual Studio 随项目自动创建)
' User has logged in with provider successfully
' Check if user is already registered locally
If OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie:=False) Then
RedirectToReturnUrl()
End If
堆栈跟踪:
[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.AspNet.Membership.OpenAuth.OpenAuthDataProvider.GetUserNameFromOpenAuth(String openAuthProvider, String openAuthId) +51 DotNetOpenAuth.AspNet.OpenAuthSecurityManager.Login(String providerUserId, Boolean createPersistentCookie) +66 Microsoft.AspNet.Membership.OpenAuth.OpenAuth.Login(String providerName , 字符串 providerUserId, Boolean createPersistentCookie) +197 Account_RegisterExternalLogin.ProcessProviderResult() +588 System.Web.UI.Control.LoadRecursive() +70 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3177
将我的运行时指定为使用 entityframework 5.0.x 并不能解决问题(在这种情况下它已升级到 6),并且使用命令行回滚 entityframework 并不能解决问题。
提前致谢。麦克风