概述
网上找了好长时间关于隐藏 .asmx页面直接访问的方法,综合了网友们的回复后,终于解决,下面分享给大伙;
第一步:在Global.asax中,将真实的.asmx页面隐藏起来,如下:
在ajax调用时,可以使用 /commweb/EventName 进行进行正常调用,通过URL转换,将 commweb 转换为 comm.asmx(你真正的服务页面)
//解析指定服务页面
protected void Application_BeginRequest(object sender, EventArgs e)
{
string hPath = Request.Url.LocalPath.ToString().ToLower();
if (!hPath.Contains("/comm.asmx"))
{
if (hPath.Contains("/commweb"))
{
Context.RewritePath(hPath.Replace("/commweb", "/comm.asmx"));
}
}
}
第二步:配置web.config,将 asmx 页面指向 AsmxErrorPage.aspx 页面,
配置 <wsdlHelpGenerator href ="AsmxErrorPage.aspx" />,代码如下:
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
<!--支持Start Web Service-->
<webServices>
<protocols>
<add name="HttpSoap" />
<add name="HttpPost" />
<add name="HttpGet" />
<add name="Documentation" />
</protocols>
<!--定义ASP.NET中web service (asmx)默认页面的样式-->
<wsdlHelpGenerator href ="AsmxErrorPage.aspx" />
</webServices>
<!--支持End Web Service-->
</system.web>
这样,用户如果通过 http://服务器地址/comm.asmx 访问你的页面,只会访问到 AsmxErrorPage.aspx 页面。
asmx 页面的服务列表得到全面隐藏。
最后
以上就是喜悦香菇为你收集整理的C# 成功隐藏web service(.asmx)页面的全部内容,希望文章能够帮你解决C# 成功隐藏web service(.asmx)页面所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复