2012-01-06 71 views
0

在我的web服务应用程序的根目录中,我有一个包含一些htmltxt文件的目录。这些文件只能访问经过身份验证的用户。我怎样才能做到这一点?ASP.Net仅为经过身份验证的用户提供接受/浏览权限

这是我的问题的后续:ASP.Net Directory Security

我实现HttpHandler通过Shark在该职位的建议。它允许htmltxt文件处理,但我无法将这些文件也显示给已验证的用户。


更新:我通过在处理程序检查会话解决了这个问题。当在服务器上托管时,我面临另一个问题。即我的自定义处理程序没有被调用。我得到的原因和解决这个问题上:http://msdn.microsoft.com/en-us/library/bb515343.aspx

原因:

默认情况下,Internet信息服务(IIS)通行证 只有某些文件类型ASP.NET服务请求。文件名为 的扩展名如.aspx,asmx和.ashx已被映射到 ASP.NET ISAPI扩展名(Aspnet_isapi.dll)。

解决方案:

要使IIS通过其他的文件扩展名到ASP.NET,你必须 注册在IIS扩展名。


始末:http://www.naveenbhat.in/2012/06/directory-security-on-webservice-with.html

回答

1

如果您正在使用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> 
+0

我已经试过这个,但它不适合我!有什么,有关 - 我需要在代码中做什么? – NaveenBhat 2012-01-06 12:00:22

+0

你试过表单身份验证?如果在验证后检查Page.User.Identity.IsAuthenticated,返回什么?或者你没有配置任何身份验证? – Chris 2012-01-06 12:05:28

+0

对于延迟感到抱歉....我使用'windows'认证,并且'Page.User.Identity.IsAuthenticated'在我的情况下总是返回'true'。我没有尝试过'Forms',因为它的webservice应用程序和AFAIK'Forms'认证在这里不是一个好的选择。 – NaveenBhat 2012-01-09 08:35:57

相关问题