UpdatePanel
を使用する予定ではなく、WebMethod
とWebService
となるはずです。このAJAXアプローチは初めてです。私の主な問題は認証です。Webmethod認証が渡されません
ページが入力されたか、ポストバック要求が作成されると、すべてが正常に動作します。認証が正しく渡され、私はThread.CurrentPrincipal.Identity
にアクセスしてそこから自分のユーザーIDオブジェクトを取得できます。
私は私のページにWebMethod
を呼び出すしようとすると、しかし、これは変更されます。呼び出しはサーバーに正しく渡され、スレッドからユーザーIDを取得しようとするまではすべて正常に機能しているようです。その後、私は実際にはAnonymous
のユーザーになるだけです。 webmethodでセッションを有効にしても、あまり役に立たないようです。
この問題を引き起こす可能性がありますし、それを解決する方法をどのような任意のアイデア?誰かが、リクエストと共に認証クッキーを渡す必要があると言いましたが、どうすればいいでしょうか?
ご協力いただければ幸いです。
編集:
いくつかの明確化とコード:
私のアプリケーションは、標準asp.net
で書かれています。レガシーコードの深い研究の後、私はすべての認証が他のすべてのページが継承しているいくつかの基本クラスで行われていることを知りました。ページがロードされるたびに、ユーザープリンシパルはHttpContext.Current.Session("...")
から取得されます。私はこれが良い解決策から遠いと思っていますが、私は今それに固執する必要があります。問題は、のため、WebMethod
は全面ページライフサイクルを開始していませんでした。セッションからユーザーデータを取得するメソッドを呼び出すことで、今すぐ修正しました。
私は、これは正しく作成することができ、どのような問題は、セッションベースの認証の結果である可能性がありますどのようにいくつかのアイデアを取得したいと思います。
PageMethods.SomeMethod(parameter, SuccessDelegate, FailureDelegate);
これは私がWebMethods
と今呼び出す方法です。私はそれがすべての必要なクッキーを通過していると仮定します、そうですか?
私はこの問題についてさらに詳しい情報を得ることができたので、質問を編集してその詳細を含めました。問題はクッキーではなく、レガシーコードにあるようです。 – Pako