ASP.Net仅向经过身份验证的用户提供访问/浏览权限

ASP.Net仅向经过身份验证的用户提供访问/浏览权限,asp.net,web-services,Asp.net,Web Services,在我的webservice应用程序的根目录中,我有一个包含一些html和txt文件的目录。这些文件只能由经过身份验证的用户访问。我怎样才能做到这一点 以下是我的问题: 我按照那篇文章的建议实现了HttpHandler。它允许处理html和txt文件,但我也不能向经过身份验证的用户显示这些文件 更新:我通过检查处理程序上的会话解决了这个问题。在服务器上托管时,我遇到了另一个问题。i、 我的自定义处理程序没有被调用。我从以下方面了解了该问题的原因和解决方案: 原因: 默认情况下,Internet信

在我的webservice应用程序的根目录中,我有一个包含一些
html
txt
文件的目录。这些文件只能由经过身份验证的用户访问。我怎样才能做到这一点

以下是我的问题:

我按照那篇文章的建议实现了
HttpHandler
。它允许处理
html
txt
文件,但我也不能向经过身份验证的用户显示这些文件


更新:我通过检查处理程序上的会话解决了这个问题。在服务器上托管时,我遇到了另一个问题。i、 我的自定义处理程序没有被调用。我从以下方面了解了该问题的原因和解决方案:

原因:

默认情况下,Internet信息服务(IIS)会传递请求 仅将某些文件类型发送到ASP.NET以提供服务。具有文件名的文件 扩展名(如.aspx、asmx和.ashx)已映射到 ASP.NET ISAPI扩展(Aspnet_ISAPI.dll)

解决方案:

要让IIS将其他文件扩展名传递给ASP.NET,必须 在IIS中注册扩展名



整个故事:

如果您使用的是ASP.Net安全性(表单/Windows身份验证),您只需通过web.config设置进行控制即可。像这样:

<system.web>

  <authentication mode="Forms">
  </authentication>

   <location path="directoryPath"> 
      <system.web>
         <authorization>
            <deny users="?"/> // this will deny access to anonymous users
         </authorization>
      </system.web>
   </location>

</system.web>

//这将拒绝匿名用户的访问

我已经试过了,但它对我不起作用!我需要在代码中执行任何相关的操作吗?您尝试过表单身份验证吗?如果在身份验证后检查Page.User.Identity.IsAuthenticated,将返回什么?或者您还没有配置任何身份验证?很抱歉延迟…我使用了
windows
身份验证,并且
页面.User.Identity.IsAuthenticated
在我的情况下总是返回
true
。我没有尝试
Forms
,因为这是一个Web服务应用程序,而AFAIK
Forms
身份验证在这里不是一个好的选择。因为我为
html
pdf
文件创建了一个单独的处理程序,所以我过去在那里检查
会话
,现在工作正常。非常感谢。我将此标记为已回答,因为在大多数情况下,它似乎是正确的答案。