仅允许某些用户编辑ASPxGridView

时间:2009-09-09 15:44:53

标签: c# security devexpress aspxgridview

我有一个ASPxGridView,我希望允许一些用户阅读,其他用户可以访问。理想情况下,这将基于Active Directory组 我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

如果您正在使用就地编辑行,那么隐藏允许用户编辑网格的控件就是一个问题。

您可以通过使用事件处理程序挂钩GridView的RowDataBound事件并检查用户的角色来完成此操作。如果检查失败,请隐藏编辑控件。

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      if (!Roles.IsUserInRole("Admin"))
      {
        // Hide the edit controls.
        // This would be your "Edit" button or something.
        e.Row.Cells[1].Controls[0].Visible = false;  
      }
    }
  }

答案 1 :(得分:0)

我最终为DataBound事件创建了一个事件处理程序,并按如下方式禁用了命令列:

protected void ASPxGridView1_DataBound(object sender, EventArgs e)
{ 
  if (!User.IsInRole(ConfigurationSettings.AppSettings["EditActiveDirectoryGroup"]))
  {
    foreach (GridViewColumn c in ASPxGridView1.Columns)
    {
      if (c.GetType() == typeof(GridViewCommandColumn))
      {
        c.Visible = false;
      }
    }
  }
}

答案 2 :(得分:0)

如果您只想对某些行有条件地启用EditButton,则在DevExpress.com上会有一个示例 CQ66919

此外,对于ASPxGridView的较新版本,他们会参考示例 E366