889d41fe83211d0820e23bef8677c417dd557c71.svn-base 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. namespace iBemsDataService
  6. {
  7. // NOTE
  8. // The following change to web.config is required
  9. // <system.serviceModel>
  10. // <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  11. static class CorsSupport
  12. {
  13. public static void HandlePreflightRequest( HttpContext context )
  14. {
  15. var req = context.Request;
  16. var res = context.Response;
  17. var origin = req.Headers["Origin"];
  18. if( !String.IsNullOrEmpty( origin ) )
  19. {
  20. res.AddHeader( "Access-Control-Allow-Origin" , origin );
  21. res.AddHeader( "Access-Control-Allow-Credentials" , "true" );
  22. var methods = req.Headers["Access-Control-Request-Method"];
  23. var headers = req.Headers["Access-Control-Request-Headers"];
  24. if( !String.IsNullOrEmpty( methods ) )
  25. res.AddHeader( "Access-Control-Allow-Methods" , methods );
  26. if( !String.IsNullOrEmpty( headers ) )
  27. res.AddHeader( "Access-Control-Allow-Headers" , headers );
  28. if( req.HttpMethod == "OPTIONS" )
  29. {
  30. res.StatusCode = 204;
  31. res.End();
  32. }
  33. }
  34. }
  35. }
  36. }