このスニペットは、私のビジネス ロジック レイヤー クラス ファイルにあります。
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")
解決策はありますか??