我是靠谱客的博主 喜悦香菇,最近开发中收集的这篇文章主要介绍C# 成功隐藏web service(.asmx)页面,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网上找了好长时间关于隐藏 .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)页面所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部