none
Problema al utilizas ihttphandler en wpf RRS feed

  • Pregunta

  • Hola que tal he implementado el siguiente codigo en web y funciona totalmente pero quiero aplicar esta logica a wpf y no reconoce las librerias de ihttphandler y httpcontext.

    •  public class IpnHandler : IHttpHandler
          {
              public void ProcessRequest(HttpContext context)
              {
                  var req = IpnBase.Parse<IpnApi>(context.Request.Form);

                  var hmac = context.Request.Headers["HMAC"];
                  if (hmac == null || !req.SigIsValid(hmac))
                  {
                      response(context, HttpStatusCode.BadRequest, "Invalid HMAC / MerchantId");
                      return;
                  }

                  if (checkForDuplicate(req))
                  {
                      response(context, HttpStatusCode.OK, "Duplicate transactions");
                      return;
                  }

                  if (req.SuccessStatusLax() && req.IpnType == "api")
                  {
                      // TODO: Process payment as needed, release product
                  }

                  response(context, HttpStatusCode.OK, "1");
              }

              private bool checkForDuplicate(IpnApi req)
              {
                  // TODO: Implement check against database if needed
                  return false;
              }

              private void response(HttpContext context, HttpStatusCode statusCode, string text)
              {
                  context.Response.StatusCode = (int)statusCode;
                  context.Response.ContentType = "text/plain";
                  context.Response.Write(text);
              }

              public bool IsReusable
              {
                  get
                  {
                      return false;
                  }
              }
          }
      }
                

    

    viernes, 29 de diciembre de 2017 17:14

Respuestas

Todas las respuestas

  • ¿Qué pretendes, implementar un servidor web dentro de tu aplicación WPF? Tendrías que tirar de OWIN; no puedes usar así como así los handlers de HTTP sin tener por debajo la infraestructura que les da soporte.
    viernes, 29 de diciembre de 2017 17:17
    Moderador
  • ¿Qué pretendes, implementar un servidor web dentro de tu aplicación WPF? Tendrías que tirar de OWIN; no puedes usar así como así los handlers de HTTP sin tener por debajo la infraestructura que les da soporte.

    SI, es mi pretencion.

    owin? como podria o conoces algun tutorial o manual que me indique como hacerlo.....

    gracias por la respuesta

    viernes, 29 de diciembre de 2017 17:21
  • hola

    pero ese codigo implementa un handler de asp.net, eso no aplica a wpf

    podrias tomar el codigo interno que usa esa clase y usarlo dentro de la funcionalidad de algun evento de la ventande wpf, pero no tienes, por ejemplo, un context.Response en wpf

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de diciembre de 2017 17:59
  • >>owin? como podria o conoces algun tutorial o manual que me indique como hacerlo

    pero owin es web, en wpf no aplica


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de diciembre de 2017 17:59
  • pero owin es web, en wpf no aplica

    Sí, si se puede aplicar. Usando las librerías de OWIN puedes implementar un servidor web dentro de un ejecutable que no es web. Yo lo he hecho con Servicios Windows y con aplicaciones de Consola, pero funcionaría igualmente con una aplicación WPF.
    sábado, 30 de diciembre de 2017 10:10
    Moderador
  • owin? como podria o conoces algun tutorial o manual que me indique como hacerlo.....

    Aquí tienes un ejemplo en docs.microsoft.com:

    https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

    Aunque el ejemplo alberga Owin en una aplicación de consola, da igual que el host sea WPF. Y aunque en este caso el tipo de servidor que crea es WebApi, el mismo principio valdría para una aplicación de otro tipo.

    sábado, 30 de diciembre de 2017 10:23
    Moderador