点击一个超链接时怎么进行数据验证
有一个用户管理超链接,只有管理员才能点此超链接。这个界面所有人都能进来,
用户名存在Session里面了,。。想让非管理员用户点此按钮显示“只有管理员才能进入”,
管理员用户才能进入、、
怎么实现。。?
------最佳解决方案--------------------当然别忘记了,在Page_Prerender中调用这个LinkButton的DataBind()方法,或者调用页面的DataBind()方法。
一言以蔽之,就是把你要隐藏的asp.net控件的Visible属性与数据绑定,让控件它自己自动去隐藏(也就是说不向浏览器端输出html代码中加入自身),浏览器端这就看不到它了。
不过对于asp.net程序来说,不管你在前端界面上是否显示了“导航到管理员页面”按钮,你的管理员页面也必须再次调用这个 CheckIsAdmin 方法来验证一次。因为极其容易伪造。而且很多时候因为浏览器缓存等问题也会让没有权限的用户访问到管理员页面。
------其他解决方案--------------------你也可以像csdn这样,跳到相应的页面之后再判断有没有相关权限
在目标页面的后台判断就ok了
------其他解决方案--------------------
在在控件的显示与隐藏属性那里用三元表达式判断就行了。
------其他解决方案--------------------后台判断也行,if(管理员) 超链 的状态给他一个隐藏
------其他解决方案--------------------可以怎么写
如果你的 那个连接是个服务器控件的额 可以再后台直接操作
private void link_click(object sender,EventArgs e)
{
if(session("roleID"==null))
{
alert(“该连接只有管理员可进入”);
}
}
没有服务器控件的话 只能结合javascript+ajax 来实现了 基本思路一样
------其他解决方案--------------------判断session里面的内容是不是管理员的id,如果不是就跳转到其他页面
------其他解决方案--------------------判断保存在session里的用户名或权限啊
------其他解决方案--------------------
javascript,,没学过,,谁能帮我写一下。。以后有时间再看一下。。大作业要交了。
------其他解决方案--------------------写错 if(不是管理员) 超链状态为隐藏
------其他解决方案--------------------
大致就是
<asp:LinkButton runat="server" Visible='<%# CheckIsAdmin() %>' ....
然后你在代码中写一个方法来返回“是否是管理员”,例如
protected bool CheckIsAdmin()
{
var s = (string)Session["userId"];
if(s==null)
return false;
else
return 查询数据库判断是否是管理员ID(s);
}