O manipulador descrito aqui processa retornos de chamada do serviço da Web de captura de tela GrabzIt. A URL desse manipulador é passada para GrabzIt no diretório callBackURL
parâmetro do Save método.
No entanto, essa técnica só funcionará se o manipulador estiver acessível por meio do Internet.
Os seguintes parâmetros são passados para o manipulador como parâmetros GET.
Se você deseja bloquear todo o acesso ao manipulador, exceto o GrabzIt, use este técnica de segurança.
Para adicionar um manipulador a um projeto MVC, basta definir um método com a seguinte assinatura em um controlador, conforme mostrado no projeto SampleMVC do Demonstração do ASP.NET.
Em seguida, passe o URL desse método para o GrabzIt. Se estiver no controlador Home, o URL de retorno de chamada pode se parecer com: http://www.example.com/Home/Handler
public ActionResult Handler(string filename, string id, string message, string customId, string format, int targeterror) { GrabzItClient grabzItClient = GrabzItClient.Create("Sign in to view your Application Key", "Sign in to view your Application Secret")%>"); GrabzItFile file = grabzItClient.GetResult(id); file.Save(Server.MapPath("~/results/" + filename)); return null; }
A maneira mais fácil de implementar um manipulador de retorno de chamada é criar um manipulador genérico e herdar de GrabzIt.Handler
como mostrado abaixo e, em seguida, implemente o Process
método. Esse método captura cinco parâmetros transmitidos a ele a partir do serviço GrabzIt, incluindo o ID exclusivo da captura que é transmitida para o GetResult método.
Esse método retorna a captura, que é saved no diretório de resultados. No entanto, se um null
valor é retornado do GetResult método indica que ocorreu um erro.
public class OverridenHandler : GrabzIt.Handler { protected override void Process(HttpContext context, string filename, string id, string message, string customId, string format, bool targetError) { GrabzItClient grabzIt = GrabzItClient.Create("Sign in to view your Application Key", "Sign in to view your Application Secret")%>"); GrabzItFile file = grabzIt.GetResult(id); file.Save(context.Server.MapPath("~/results/" + filename)); } }
Enquanto a técnica acima usa um manipulador genérico, você pode usar com facilidade uma página ASPX para receber o retorno de chamada e baixar a captura. Para fazer isso, basta criar sua própria página ASPX, etc, e depois ler o perguntastring parâmetros mencionados acima. O parâmetro mais útil é o parâmetro id, que pode ser usado com o GetResult
método para baixar a captura.