CachedVaryBy.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // System.Web.Caching.CachedVaryBy
  3. //
  4. // Author(s):
  5. // Jackson Harper ([email protected])
  6. //
  7. // (C) 2003 Novell, Inc (http://www.novell.com)
  8. //
  9. using System;
  10. using System.Text;
  11. namespace System.Web.Caching {
  12. internal class CachedVaryBy {
  13. private string[] prms;
  14. private string[] headers;
  15. private string custom;
  16. internal CachedVaryBy (HttpCachePolicy policy)
  17. {
  18. prms = policy.VaryByParams.GetParamNames ();
  19. }
  20. internal string CreateKey (string file_path, HttpRequest request)
  21. {
  22. StringBuilder builder = new StringBuilder ();
  23. builder.Append ("CachedRawResponse\n");
  24. builder.Append (file_path);
  25. builder.Append ('\n');
  26. builder.Append ("METHOD:" + request.HttpMethod);
  27. builder.Append ('\n');
  28. if (prms != null) {
  29. for (int i=0; i<prms.Length; i++) {
  30. if (request.Params [prms [i]] == null)
  31. continue;
  32. builder.Append ("VP:");
  33. builder.Append (prms [i]);
  34. builder.Append ('=');
  35. builder.Append (request.Params [prms [i]]);
  36. builder.Append ('\n');
  37. }
  38. }
  39. return builder.ToString ();
  40. }
  41. }
  42. }