spcontext.current.web.currentuserに代わるものはありますか?
質問
SPContext.Current.Web.CurrentUser
が本当に信頼できないことを発見しました。Objectがnull
として戻ってきた10人のうち1つ
SPContext.Current.Web.CurrentUser
に代わるものはありますか?
他の誰かがこの信頼性を見たことがありますか?
はそこに固定がありますか?
解決
あなたが問題のあるコードとその周辺を投稿したとしてもクールですが、私の頭の上から考えるものはいくつか:
- ライフサイクル(PreinitメソッドやhttpModuleなど)の中でオブジェクトを早くしようとしているかもしれません。
- httpContextをNULLに設定するようなものをしていることをしていることをしていることができるようにパイプラインを破るかもしれません(前のSharePointの回避策では見ました)
- あなたはapacheやnginxのようなリバースプロキシの背後にあるかもしれませんあなたのキープアライブが狂ってください、あなたの環境外のコードをテストしてみてください ハードウェアの問題のための
- といくつかの「緑色のライト」、Maxium RAMに到達するアプリプール、またはその不足、SQL Serverのビジー
- 統合認証を行ういくつかのPinvokeの偽装を使用することができます
- FBAを使用している場合プロバイダ設定とバックエンドの可用性(AD、XMLファイル、SQLメンバーシップ)が失敗する可能性があります - しかし、これは異なるエラーになる可能性は低いです。
- HTTPMODULESセクションのめちゃくちゃなことも物事を壊すのが大好きですが、変更がゼロの新しいWebアプリケーションで試しましたか?
- 私は8人が好きです、だから私はそれを与えるべきだと思った私は8人の曖昧なアイデア
tl; dr:あなたのコードを投稿してください:)
他のヒント
私は私がそれをコンテキストから呼び出していることを忘れているときにのみ経験しました。
SPSecurity.RunWithElevatedPrivileges()
内でこれを呼び出しようとしていないことはありますか?
PLZこれを試してみてください。
SPWeb spWeb = Microsoft.SharePoint.WebControls.SPControl.GetContextWeb(System.Web.HttpContext.Current);
SPUser user = spWeb.CurrentUser;
.
または
using (SPSite spsite = new SPSite(url))
{
using (SPWeb spweb = spsite.OpenWeb())
{
userObj = spweb.CurrentUser;
}
}
.
PLZもRunWithElevatedPrevileges()で試してみてください...
所属していません sharepoint.stackexchange