【发布时间】:2014-06-11 11:20:49
【问题描述】:
我有一个带有编辑选项的 gridview,可以编辑 gridview 行。我的 Web 应用程序中也有不同的用户权限,例如管理员、超级用户、用户。如果用户不是Admin 并且他尝试编辑一行,我需要发出如下所示的警报。但是我在下面使用的 js 会提醒所有用户,因为没有设置验证。
到目前为止我的尝试
GridView:
<ItemTemplate>
<asp:ImageButton ID="btnEdit" OnClientClick="myFunction()" runat="server" CommandName="Edit" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" ImageUrl="~/Images/Edit.gif" />
</ItemTemplate>
Javascript:
function myFunction() {
var edit;
if (confirm("For ADMIN only. Do not edit/delete the row. Still want to continue?") == true) {
}
else {
window.location.reload();
}
document.getElementById("btnEdit").innerHTML = edit;
}
捕获当前登录用户:
我还使用以下代码在同一页面中捕获了当前登录的用户。当前登录的用户信息保存在标签中。
protected void Page_Load(object sender, EventArgs e)
{
checkUser();
}
public void checkUser()
{
string currentUser = HttpContext.Current.Request.LogonUserIdentity.Name;
string[] words = currentUser.Split('\\');
currentUser = words[1];
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(strcon))
{
SqlCommand command = new SqlCommand();
command.Connection = conn;
string strQuery = "select UserId from Permissions where UserId='" + currentUser + "'";
SqlCommand cmd = new SqlCommand(strQuery, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
lblUser.Text = ds.Tables[0].Rows[0]["UserName"].ToString();
}
在Permissions 表中,我有一个名为 Roles 的列,我需要检查用户是否不是管理员并且需要发出警报。非常感谢您对此的任何建议或帮助。
【问题讨论】:
-
为什么要提醒用户?这似乎是一个沮丧的用户。相反,为什么不为无权访问的人隐藏编辑按钮?
-
@mason - 不,他们可以编辑该行,但我仍然需要显示警报。
-
在这种情况下,为什么要使用会破坏工作流程的警报?通知用户而不妨碍用户的通知可能更可取,例如noty。
-
@mason - 我无法访问链接。
-
只是一个我喜欢的通知库的链接。还有一些其他的,例如Notify.js 和alertify.js,
标签: c# javascript asp.net gridview