如何使用session实现分权限登录

xuailiuxian 2011-03-29 09:07:12
如何使用session实现分权限登录,例如表中的status值为1或2来分权限
如何用session取值并且验证和跳转,在线等 谢谢
...全文
574 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复
是的,这么跳转行么
MiracleVic 2011-03-29
  • 打赏
  • 举报
回复
LZ的意思是,根据表中Status这一列的值来进行权限分配,如果登录进来的人的权限值是1那么就跳到、、、如果是2就跳到、、、 是这样吗?
codefighting 2011-03-29
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
ArrayList list = {Session["Status"]};
  • 打赏
  • 举报
回复
object list = Session["Status"];
if (list.Equals("1"))
yan267 2011-03-29
  • 打赏
  • 举报
回复
ArrayList 只能加上去,不能强制类型转换。

lanqiang456 2011-03-29
  • 打赏
  • 举报
回复
结贴变33了```````````
取到值 然后 在后台 NEW 一个TREEVIEW 有那个权限的就输出出来,没那个权限 就不输出那个树``
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 dishniao 的回复:]
引用 16 楼 xuailiuxian 的回复:
引用 15 楼 dishniao 的回复:
引用 14 楼 xuailiuxian 的回复:
怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个

赋值:session["Status"] = 值(好像能任意类型)
验证:if(Session["Status"].ToSt……
[/Quote]
要判断权限,Status中存各个用户的权限值,之后见表中的Status的值给Session["Status"]然后判断

Session["Status"] = sdr["Status"].ToString();

if (Session["Status"]!= null)
{
ArrayList list = (ArrayList)Session["Status"];
if (list.Contains("1"))
{
Permission = false;
Response.Redirect("Default.aspx");

}

}

现在有这个就是会出错string无法转换为ArrayList怎么解决
MiracleVic 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 xuailiuxian 的回复:]
引用 15 楼 dishniao 的回复:
引用 14 楼 xuailiuxian 的回复:
怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个

赋值:session["Status"] = 值(好像能任意类型)
验证:if(Session["Status"].ToString() != null)

赋表中数据的值……
[/Quote]
你要从数据库表中取出值,然后付进Session中?为什么要这样做?说说你的思路吧。
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 dishniao 的回复:]
引用 14 楼 xuailiuxian 的回复:
怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个

赋值:session["Status"] = 值(好像能任意类型)
验证:if(Session["Status"].ToString() != null)
[/Quote]
赋表中数据的值怎么赋?
MiracleVic 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xuailiuxian 的回复:]
怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个
[/Quote]
赋值:session["Status"] = 值(好像能任意类型)
验证:if(Session["Status"].ToString() != null)
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复
怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个
MiracleVic 2011-03-29
  • 打赏
  • 举报
回复
只是一个界面上的权限登录判断吗?
flyerwing 2011-03-29
  • 打赏
  • 举报
回复
标记装载或者转接吧,不懂.
别写程序了伤害大,挣钱少;钱都让狗挣了.
codefighting 2011-03-29
  • 打赏
  • 举报
回复
把权限放到Session里

/// <summary>
/// 执行权限检查
/// </summary>
/// <param name="PermitID">权限ID</param>
/// <returns></returns>
protected bool PermitExcute(int PermitID)
{
DataTable m_dt=(DataTable)Session["UserPermitTable"];
var query = from pl in m_dt.AsEnumerable() where pl.Field<int>("Adm_FunItem_Id")==PermitID select pl;
return (query.Count()>0) ? true : false;
}
ycproc 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 msdnxgh 的回复:]

C# code

//权限角色表检查
if(Session["log"]==null)
{
//添加权限
ArrayList list = new xxxx(Name);//得到权限列表,naem为用户名
Session["log"] = list;
}

……
[/Quote]

这样的session权限判断最好少用
因为这样的权限如果做不好会出问题的
还是放在数据库的验证好一些
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=StudentManager;Integrated Security=True");


SqlCommand cmd = new SqlCommand("select * from Userss where UserName='" + UserName.Text + "'", conn); //创建查询用户名是否存在数据对象
try
{
conn.Open(); //打开连接
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read()) //如果用户名输入正确
{
if (sdr["UserPassword"].ToString() ==PassWord.Text)//密码正确
{
conn.Close();
Session["UserName"] = UserName.Text.Trim();//存储用户名

bool Permission = true;
if (Session["Status"] != null)
{
ArrayList list = (ArrayList)Session["Status"];
if (list.Contains("1"))
{
Permission = false;
Response.Redirect("Default.aspx");

}
}
if (Permission)
{
Response.Clear();
Response.Write("<script language=\"javascript\">alert(\"对不起你没有权限进入\");history.go(-1);</script>");
Response.End();
}


//Response.Redirect("Default.aspx"); //进入系统
}
else
{
Response.Write("<script language=javascript>alert('您输入的密码错误!')</script>");
}
}
else
{
Response.Write("<script language=javascript>alert('您输入的用户名错误或该用户名不存在!')</script>");
}
}

catch (System.Exception ee)
{
Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>");
}
finally
{
conn.Close();
}

}
}


为什么这么改了不是跳转一个页面 而是弹出一个网页消息PassWord呢?
xuailiuxian 2011-03-29
  • 打赏
  • 举报
回复
具体的判断以及取值的代码是什么,有人写一个么,我还不会呢.如何将Status的值取出并且判断权限啊
MSDNXGH 2011-03-29
  • 打赏
  • 举报
回复

//权限角色表检查
if(Session["log"]==null)
{
//添加权限
ArrayList list = new xxxx(Name);//得到权限列表,naem为用户名
Session["log"] = list;
}


#region 权限检查
bool Permission = true;
if (Session["log"] != null)
{
ArrayList list = (ArrayList)Session["log"];
if (list.Contains("1")//本页需要权限1才可以进入)
{
Permission = false;
}
}
if (Permission)
{
Response.Clear();
Response.Write("<script language=\"javascript\">alert(\"对不起你没有权限进入\");history.go(-1);</script>");
Response.End();
}
#endregion

在后台page_load事件中加入上面这段话就可以了
大Y 2011-03-29
  • 打赏
  • 举报
回复
如果LZ 是用不同页页代表权限体现的话,可通过!
LZ写的code去实现呀!

如果在一个页面中不同的权限按钮,要去动态的判断是否用户可用及可见性!!!

加载更多回复(5)

62,046

社区成员

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

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

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

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