ASP.NET 2.0中如何通过FORM认证限制访问子目录的文件

空闲独处 2006-09-11 07:30:38
有个项目,是ASP.NET 2.0 VB的,

项目里有个登录页面:Login.aspx
认证的Cookie是:("Login")("USERID")和("Login")("USERName")

我在web.config中,加入form认证:

<authentication mode="Forms">
<forms name="Login" loginUrl="Login.aspx"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>

但是用户没有经过认证照样能访问子目录的文件,在子目录下加web.config也不行,请高手指教。

我的目的很简单,只需要当用户在认证Cookie为空的时候,
如果访问该项目下的子目录,就跳到登录页面即可。

比如,项目的根目录为: http://localhost/myproj/
当用户没有经过认证即访问:http://localhost/myproj/files/doc/1/a.xls
直接跳到:http://localhost/myproj/login.aspx
...全文
324 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
空闲独处 2006-09-20
  • 打赏
  • 举报
回复
avisnet(第十维度),谢谢。

根据你的思路,我用了一个比较笨,但相对简单点的办法。
就是在IIS的应用程序扩展名映射里把这些常用的扩展名一个一个给添加上去了。
基本上符合要求。
avisnet 2006-09-20
  • 打赏
  • 举报
回复
path="*.gif, *.jpeg, *.jpg, *.bmp, *.png"
其它已知的文件格式也没有多少,一个个写出来就是了,稍微麻烦点
avisnet 2006-09-20
  • 打赏
  • 举报
回复
你的方法应该可以,但是文件是用户上载的,所以没办法固定扩展名,
<add verb="*" path="files/doc/1/*.xls" type="HandlerExample.MyHttpHandler,HandlerExample"/>
如果用这个方法,我不是得把所有的扩展名都给写上才行?

所有文件的话改成下面这样:
<add verb="*" path="files/doc/1/*" type="HandlerExample.MyHttpHandler,HandlerExample"/>
空闲独处 2006-09-20
  • 打赏
  • 举报
回复
avisnet(第十维度)

其实按照你的第一个方法,对aspx的文件是有效的,
现在就差一个对其它文件也同样有效的方法而已。
其它文件包括所有可能的扩展名,还有什么方法吗?
空闲独处 2006-09-20
  • 打赏
  • 举报
回复
TO:avisnet(第十维度)
你的方法应该可以,但是文件是用户上载的,所以没办法固定扩展名,
<add verb="*" path="files/doc/1/*.xls" type="HandlerExample.MyHttpHandler,HandlerExample"/>
如果用这个方法,我不是得把所有的扩展名都给写上才行?

TO:cao666jh()
你的方法,我试了一下,没有任何效果。

myminimouse 2006-09-18
  • 打赏
  • 举报
回复
jf~
cao666jh 2006-09-18
  • 打赏
  • 举报
回复
<location path="files"/>
<system.web>

<authentication mode="Forms">
<forms name="Login" loginUrl="Login.aspx"></forms>
</authentication>
<authorization>
<deny users="*" />
</authorization>
1.<<根目录下的主要web.config>>

2.file文件夹下面建立一个web.config文件
里面内容
<configuration>
<system.web>


<authorization>

<deny users="?" />

</authorization>

</system.web>
</configuration>

jc15271149 2006-09-18
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xiaotao823/archive/2006/09/02/493221.html
空闲独处 2006-09-18
  • 打赏
  • 举报
回复
谢谢大家,我再试试。
avisnet 2006-09-13
  • 打赏
  • 举报
回复
用IHttpHandler,新建一个工程,名为HandlerExample
namespace HandlerExample
{
public class MyHttpHandler : System.Web.IHttpHandler
{
#region IHttpHandler Members

public bool IsReusable
{
get { throw new Exception("The method or operation is not implemented."); }
}

public void ProcessRequest(HttpContext context)
{
//context.Response.Write(context.Request.Url.AbsoluteUri);
//context.Response.Redirect(path + "login.aspx");
//在这里转到login.aspx
}

#endregion
}
}

修改web.config
<system.web>
<httpHandlers>
<add verb="*" path="files/doc/1/*.xls" type="HandlerExample.MyHttpHandler,HandlerExample"/>
</httpHandlers>
</system.web>
yanam 2006-09-13
  • 打赏
  • 举报
回复
<location path="Admin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
dwp008 2006-09-13
  • 打赏
  • 举报
回复
http://asp.net/learn/videos/default.aspx?tabid=63

这个页面下面有一个Securing your Web Site with Membership and Login Controls

的视屏,可能会对你有帮助
空闲独处 2006-09-13
  • 打赏
  • 举报
回复
谢谢 avisnet(第十维度)

我照你的方法,在子目录下添加了,可是还是不行。

比如,项目的根目录为: http://localhost/myproj/
我要限制访问:myproj/files/下的所有子目录下的文件,在files/下只有子目录而没有文件。

按照上面的方法好象只对输入 http://localhost/myproj/files/a.aspx是起作用,
而我需要的是限制 http://localhost/myproj/files/doc/1/a.xls 的访问。

是不是还需要设置些什么。
amingo 2006-09-11
  • 打赏
  • 举报
回复
帮LZ顶
snowday365 2006-09-11
  • 打赏
  • 举报
回复
用location
avisnet 2006-09-11
  • 打赏
  • 举报
回复
你做法不对:
在你想要限制访问的目录下新建一个config文件,内容:
<?xml version="1.0"?>

<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>

修改跟目录下的web.config文件:
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="default.aspx">
</forms>
</authentication>

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧