ASP.Net仅向经过身份验证的用户提供访问/浏览权限
在我的webservice应用程序的根目录中,我有一个包含一些ASP.Net仅向经过身份验证的用户提供访问/浏览权限,asp.net,web-services,Asp.net,Web Services,在我的webservice应用程序的根目录中,我有一个包含一些html和txt文件的目录。这些文件只能由经过身份验证的用户访问。我怎样才能做到这一点 以下是我的问题: 我按照那篇文章的建议实现了HttpHandler。它允许处理html和txt文件,但我也不能向经过身份验证的用户显示这些文件 更新:我通过检查处理程序上的会话解决了这个问题。在服务器上托管时,我遇到了另一个问题。i、 我的自定义处理程序没有被调用。我从以下方面了解了该问题的原因和解决方案: 原因: 默认情况下,Internet信
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服务应用程序,而AFAIKForms
身份验证在这里不是一个好的选择。因为我为html
和pdf
文件创建了一个单独的处理程序,所以我过去在那里检查会话
,现在工作正常。非常感谢。我将此标记为已回答,因为在大多数情况下,它似乎是正确的答案。