这个片段在我的业务逻辑层类文件中:
Public Shared Function getAccIDFromSocialAuthSession() As Object
Dim db As SqlDatabase = Connection.connection
Dim accID As Integer
If SocialAuthUser.IsLoggedIn Then
Using cmd As SqlCommand = db.GetSqlStringCommand("SELECT AccountID FROM UserAccounts WHERE FBID=@fbID")
db.AddInParameter(cmd, "fbID", SqlDbType.VarChar, SocialAuthUser.GetCurrentUser.GetProfile.ID)
accID = db.ExecuteScalar(cmd)
End Using
End If
Return accID
End Function
我正在使用SocialAuth.Net。SocialAuth.NET
将所有内容存储在会话中。例如,要获取我们调用的 Facebook 用户 ID SocialAuthUser.GetCurrentUser.GetProfile.ID
,因为它是基于会话的,所以当我尝试从 web 服务 (asmx.vb) 文件调用时,我会收到此错误消息“对象引用未设置为对象的实例” 。SocialAuthUser.GetCurrentUser.GetProfile.ID
我这样称呼它(ClassName.FunctionName-->BLL.getAccIDFromSocialAuthSession)
当我从页面调用相同的函数时,aspx.vb
它可以正常工作,但当我从asmx.vb
页面调用它时却不行。
由于我不知道会话变量名称,我无法使用System.Web.HttpContext.Current.Session("NameHere")
有什么解决办法??