タグ付けされた質問 「httpcontext」

14
単体テストでHttpContext.Current.Sessionを設定する
単体テストをしようとしているWebサービスがあります。サービスでは、いくつかの値をHttpContextように。 m_password = (string)HttpContext.Current.Session["CustomerId"]; m_userID = (string)HttpContext.Current.Session["CustomerUrl"]; 単体テストでは、次のような単純なワーカーリクエストを使用してコンテキストを作成しています。 SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter()); HttpContext context = new HttpContext(request); HttpContext.Current = context; ただし、値を設定しようとするたびに HttpContext.Current.Session HttpContext.Current.Session["CustomerId"] = "customer1"; HttpContext.Current.Session["CustomerUrl"] = "customer1Url"; nullであるというnull参照例外が発生しHttpContext.Current.Sessionます。 単体テスト内で現在のセッションを初期化する方法はありますか?

4
Test InitメソッドのHttpContext.Currentのモック
作成したASP.NET MVCアプリケーションに単体テストを追加しようとしています。単体テストでは、次のコードを使用します。 [TestMethod] public void IndexAction_Should_Return_View() { var controller = new MembershipController(); controller.SetFakeControllerContext("TestUser"); ... } 次のヘルパーを使用して、コントローラーコンテキストをモックします。 public static class FakeControllerContext { public static HttpContextBase FakeHttpContext(string username) { var context = new Mock<HttpContextBase>(); context.SetupGet(ctx => ctx.Request.IsAuthenticated).Returns(!string.IsNullOrEmpty(username)); if (!string.IsNullOrEmpty(username)) context.SetupGet(ctx => ctx.User.Identity).Returns(FakeIdentity.CreateIdentity(username)); return context.Object; } public static void SetFakeControllerContext(this Controller controller, string …

3
ASP.NET MVC 1のHttpContextBaseからHttpContextオブジェクトを取得するにはどうすればよいですか?
私はいくつかのWebForms / MVCに依存しないツールを使用しておりHttpContext、HttpContextBaseオブジェクトへの参照が指定されているインスタンスを取得する必要があります。HttpContext.Currentこれも非同期で動作する必要があるため、使用できません(非同期要求中にHttpContext.Current戻りますnull)。は承知してHttpContextWrapperいますが、間違った方向に進んでいます。

5
Moqを使用してASP.NET MVCのHttpContextをモックするにはどうすればよいですか?
[TestMethod] public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist() { var context = new Mock<HttpContextBase>(); var request = new Mock<HttpRequestBase>(); context .Setup(c => c.Request) .Returns(request.Object); HomeController controller = new HomeController(); controller.HttpContext = context; //Here I am getting an error (read only). ... } 私の基本コントローラーには、このrequestContextを取得するInitializeのオーバーライドがあります。私はこれを伝えようとしていますが、何か正しいことをしていません。 protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); } Moqを使用したRequestContextとHttpContextのモックに関する詳細情報はどこで入手できますか?私はクッキーと一般的なコンテキストを模倣しようとしています。

6
スレッドまたはタイマーでHttpServerUtility.MapPathメソッドにアクセスする方法
私System.Timers.TimerはAsp.Netアプリケーションでを使用しており、HttpServerUtility.MapPath経由でのみ利用できるように見えるメソッドを使用する必要がありますHttpContext.Current.Server.MapPath。問題はそれでHttpContext.Currentあるnull時にTimer.Elapsedイベントが発生します。 HttpServerUtilityオブジェクトへの参照を取得する別の方法はありますか?クラスのコンストラクターに挿入できます。安全ですか?現在のリクエストの最後にガベージコレクションされないようにするにはどうすればよいですか? ありがとう!

4
HttpContextから現在のSystem.Web.UI.Pageを取得しますか?
これは実際には2つの部分からなる質問です。まず、HttpContext.Currentは現在のSystem.UI.Pageオブジェクトに対応していますか? そして、おそらく最初の質問に関連する2番目の質問は、現在のページがインターフェイスを実装しているかどうかを確認するために、次の質問を使用できない理由です。 private IWebBase FindWebBase() { if (HttpContext.Current as IWebBase != null) { return (IWebBase)HttpContext.Current.; } throw new NotImplementedException("Crawling for IWebBase not implemented yet"); } 一般的なコンテキストでは、一部のコントロールは、SharePoint Webパーツとして実行されているのか、Asp.Netフレームワークの一部として実行されているのかを知る必要があります。 コントロールにそれ自体への参照を渡すように要求し、コントロールのPageプロパティを確認することで問題を解決しましたが、上記が機能しない理由についてはまだ興味があります。 コンパイラエラーは次のとおりです。参照変換、ボックス化変換、ボックス化解除変換、ラッピング変換、またはnull型変換を介してSystem.Web.HttpContextを... IWebBaseに変換できません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.