asp.net中如何防止盗链的问题

popo0762 2006-01-06 10:54:34
我最近做了一个管理系统,用ASP.NET做的。我在其中遇到了一个对我而言的难题,就是权限问题。我想让访问者必须登录才能进入相应的界面,在浏览器地址栏中输入界面的地址,则无法访问,登录进入相应权限内界面后,在浏览器地址栏中输入其他界面的地址,也无法访问。
有谁可以帮我一下啊,我非常的需要帮助。
...全文
219 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2006-01-07
  • 打赏
  • 举报
回复
防止盗链的问题很容易

在load事件写个截获引用页网站时不时等于你的网址
aiur2000 2006-01-07
  • 打赏
  • 举报
回复
Session和Form身份验证
lidong6 2006-01-07
  • 打赏
  • 举报
回复
使用ASP.NET的FORM验证就可以防止别人盗链,就像楼上的那样

如果想让登录用户也不能在地址栏里输入地址访问,那一定是只有通过按钮或链接才可以访问,那可以使用服务器端控件或标准ASP.NET控件在代码里写页面转向,并在URL里进行加密.
gulx 2006-01-07
  • 打赏
  • 举报
回复
修改 Web.config
1、 双击项目中的Web.config(不会的、找不到的打 PP)
2、 找到下列文字 <authentication mode="Windows" /> 把它改成:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms>
</authentication>
3、 找到<authorization> <allow users="*" /></authorization>换成
<authorization><deny users="?"></deny></authorization>
wu896222 2006-01-07
  • 打赏
  • 举报
回复
"登录进入相应权限内界面后,在浏览器地址栏中输入其他界面的地址,也无法访问",这个问题要解决的好也不容易.

比较复杂的方法是,你对主要的页面配置权限,在这些页面的开始处,根据用户登录的ID来判断用户是否有权限.这种方法要求权限设计的要合理,页面很多的情况下,有点麻烦.

比较简单的方法是,如你在页面设置上下两个FRAME,当在地址栏输入新地址的时候,相当于你的主页面UNLOAD,所以你在主页面的UNLOAD事件中添加跳转到登出的页面. 也就是说,在地址栏输入新地址,就让用户登出.
cat_hsfz 2006-01-07
  • 打赏
  • 举报
回复
你这个不是防盗链问题吧?应该算是浏览权限控制的问题,也就是非授权用户得到URL也无法浏览内容,对吧?

最方便的做法就是Forms Authentication,也就是Forms验证,详细的做法你可以看MSDN,里面说得很清楚了。特别是ASP.NET 2.0,用Forms验证真的非常方便。Forms验证的一个好处就是,你无须在每个页面加代码验证用户是否登录,你可以在web.config配置用户浏览某个区域(例如目录)所需要的权限,不够权限的系统自动帮你拦截该用户。
sundy0104 2006-01-07
  • 打赏
  • 举报
回复
有三种方法可以做,
1. Cookie 2. Session 3. Form身份验证
最常用的是第三个Form,可以在这个网址去看看http://spaces.msn.com/members/qnuse/Blog/cns!1p5gvilCHpiu_NDdGITUGiRA!125.entry
第二种的代码如下:
在你验证登陆成功后添加Session["flag"]=true;
然后在你的每个页面里的Page_Load里判断
if(Convert.ToString(Session["flag"])=="True")
{
//里面写自己的代码
}
else
{
//否则就转到登陆页面去
Response.Redirect("login.aspx")
}

popo0762 2006-01-06
  • 打赏
  • 举报
回复
to nicesky1(无名)

可以给出具体的代码例子来吗?我是新手,实际操作不行,谢谢了!
nicesky1 2006-01-06
  • 打赏
  • 举报
回复
在登陆时保存个session变量,用来保存用户的登陆状态,以后在每个需验证的页面,判断session变量的值也可实现此功能啊。
nicesky1 2006-01-06
  • 打赏
  • 举报
回复
//必顺从登陆页面进入
string MustFromUrl="http://localhost/aspnet/WebApplication32/login.aspx".ToLower();

//若不符合要求则转到登陆页
if (Request.UrlReferrer.ToString().ToLower()!=MustFromUrl)
{
Response.Redirect(MustFromUrl);
}

62,046

社区成员

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

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

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

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