我们在做服务层时,经常会用到Web Service,但是这有个问题,容易被人恶意调用接口。
一种解决办法是自己写个验证SoapHeader,屏蔽接口在网页端调用,但使用这个方法别人还是能看到你的接口有哪些,也不安全,所以今天就写出我的办法屏蔽WSDL接口。
我用的是C#,其他语言的也可以参考我这个办法,如果大家有更好的办法,可以互相学习一下:
我们知道在网页端网页打开是使用GET方式,一般我们在使用Web Service是使用POST方式的,所以我们可以这样做
在Web Service项目中添加Global文件,在Global文件中捕获事件BeginRequest,如下
protected void Application_BeginRequest(object sender, EventArgs e) { HttpRequest obj = Request; if (obj.HttpMethod != "POST") Response.End(); }
我们来看下,实现前后的对比