2

Web ページ要求が行われると、ブラウザに返されるデータを調べ、特定のキーワードを承認されたキーワードに置き換える IIS モジュールに取り組んでいます。これを行うには複数の方法があることは承知していますが、今回の目的には IIS モジュールが最適です。

必要に応じてキーワードを変換できるように、ブラウザーに送り返されるデータのストリームを文字列に読み取るにはどうすればよいですか?

どんな助けでも大歓迎です!

コードは次のとおりです。

namespace MyNamespace
{
    class MyModule : IHttpModule
    {
        private HttpContext _current = null;

        #region IHttpModule Members

        public void Dispose()
        {
            throw new Exception("Not implemented");
        }

        public void Init(HttpApplication context)
        {
            _current = context.Context;

            context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
        }

        #endregion

        public void context_PreRequestHandlerExecute(Object source, EventArgs e)
        {
            HttpApplication app = (HttpApplication)source;
            HttpRequest request = app.Context.Request;
        }
}
4

1 に答える 1

1

次の 2 つの方法があります。

  1. 応答フィルターの使用

http://www.4guysfromrolla.com/articles/120308-1.aspx

  1. がページ自体を処理PreRequestHandlerExecuteする直前に実行されるアプリケーションのイベントを処理します。IHttpHandler

    public class NoIndexHttpModule : IHttpModule
    {
      public void Dispose() { }
    
      public void Init(HttpApplication context)
      {
        context.PreRequestHandlerExecute += AttachNoIndexMeta;
      }
    
      private void AttachNoIndexMeta(object sender, EventArgs e)
      {
        var page = HttpContext.Current.CurrentHandler as Page;
        if (page != null && page.Header != null)
        {
          page.Header.Controls.Add(new LiteralControl("<meta name=\"robots\" value=\"noindex, follow\" />"));
        }
      }
    

    }

于 2011-08-29T16:02:11.007 に答える