asp.net安全

冬冬瓜 2010-09-12 10:54:07
form身份验证和用session判断验证有什么区别??
怎么设置页面的访问权限?就是说有很多页面只能登录的用户进行查看,不能直接在地址栏输入来访问,那是不是要在每个页面的page-load事件中判断session??
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdbfba739 2010-09-13
  • 打赏
  • 举报
回复
在Web.Config里面做一个配置,用户不登录,就直接跳转到登录界面,只有登录通过,才能够看到别的页面。
zhouing00 2010-09-13
  • 打赏
  • 举报
回复
很简单的
if (Session["UserLoginID"] != null) {
// 提示没有登录
} else {

//登录了
}
luoxj_win 2010-09-13
  • 打赏
  • 举报
回复
4、退出代码:

//我这里用的是.ashx文件
public void ProcessRequest (HttpContext context) {
System.Web.Security.FormsAuthentication.SignOut();
//context.Session.RemoveAll();
context.Response.Redirect("login.aspx");
}
luoxj_win 2010-09-13
  • 打赏
  • 举报
回复
forms验证很便捷、实现退出功能只需2句代码
1、在根目录下修改配置文件

<authentication mode="Forms">
<forms name="xiaocookies" loginUrl="~/admin/login.aspx"/>
</authentication>

2、admin目录下创建一个web.config
<system.web>
<authorization>
<deny users="?"/><!--表示拒绝未通过验证的用户访问当前目录-->
<!--如果用户访问admin目录下的页面,,此时将会转到admin/login.aspx,上面定义了loginUrl-->
</authorization>
</system.web>
3、怎么让用户通过验证呢?
在admin/login.aspx登录事件中写入下面的代码:

protected void SetDom(string userId)//省略了用户查询和验证
{
FormsAuthentication.SetAuthCookie(userId,true);//给userId用户发放权限
Response.Redirect("menu.htm");//转到admin/menu.htm页面
}
wuyq11 2010-09-12
  • 打赏
  • 举报
回复
设置basepage判断session
forms验证就是利用Cookie或者Session来控制用户对页面的访问
q107770540 2010-09-12
  • 打赏
  • 举报
回复
不能直接在地址栏输入来访问
==========
page_load中清空页面缓存即可

Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddHours(-2);

Response.CacheControl = "no-cache";
Response.AddHeader("pragma", "no=cache");


无爱大叔 2010-09-12
  • 打赏
  • 举报
回复
form身份验证,我很汗颜没用过。

怎么设置页面的访问权限?
用户登录时就将权限串存入session中,在相关页面判断即可。

每个页面的page-load事件中判断session??
不需每个页面的pageload里判断,写一个类,在需要的页面里基层该类。

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;

/// <summary>
///pageSession 的摘要说明
/// </summary>
namespace Com.PubClass {
public abstract class pageSession : Page {
private bool _isadmin;
protected bool IsAdmin {
get {
return _isadmin;
}
set {
_isadmin = value;
}
}

protected override void OnLoad(EventArgs e) {
try {
if (Session["UserLoginID"] != null) {
this.IsAdmin = true;
} else {
Session.Abandon();
Response.Write("<script>alert('用户登录超时,请重新登录!');top.location.href='" + ResolveUrl("~/login.aspx") + "';</script>");
Response.End();
}
} catch (Exception serviceErr) {
Response.Write("会话已过期!<br/><b>详细信息:</b>" + serviceErr.Message.ToString());
Response.End();
}
base.OnLoad(e);
}
}
}


在需要session验证的页面里继承该类:
public partial class Aspx_Manage_Index: pageSession
{
protected void Page_Load(object sender, EventArgs e)
{

}
}

62,025

社区成员

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

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

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

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