這個片段的工作是我的業務邏輯層類文件:功能無法與web服務
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 [email protected]")
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)
Whaen我調用同一個函數從aspx.vb
頁面它工作正常,但不是當我把它從一個asmx.vb
頁。
,因爲我不知道該會話變量名,我不能使用System.Web.HttpContext.Current.Session("NameHere")
任何解決方案?
工作就像一個魅力。我欠你一杯。將它添加到你的清單!謝啦。 – Monodeep
+1 - 我在網絡方法調用中忘記了EnableSession:= True。接得好。 – Darren
@Monodeep不客氣。乾杯! –