0

有时,在从 AD 进行搜索时,我会收到 System.Byte[] 响应。如果我在 vs2010 中打开源页面文件并重新保存搜索返回没有问题。

注意我将结果集绑定到 xml。我想这与它有很大关系。

这是一个代码摘录:


    public void bindGridView(string sortExp, string sortOrder)
  {
    DataSet aDataSet = new DataSet();
    XmlDocument xd = LDAPConn(sortExp, sortOrder);
    aDataSet.ReadXml(new StringReader(xd.InnerXml));
    // Bind the DataSet to the grid view
    DataView dv = new DataView();
    string sortMsg = "";
    switch (sortExp)
    {
      case "sn":
        sortMsg = "Lastname";
        break;
      case "department":
        sortMsg = "Department";
        break;
      case "Title":
        sortMsg = "Title";
        break;
      case "physicalDeliveryOfficeName":
        sortMsg = "Store";
        break;
      default:
        sortMsg = sortExp;
        break;
    }
    if (aDataSet.Tables.Count > 0)
    {
      try
      {
        debug(true, "<h2 style='float:right;'><b>Sorting By:</b><strong style='color:#880000;'>" + sortMsg + "</strong> &amp; <b>Direction:</b><strong style='color:#880000;'>" + sortOrder.ToString() + "</strong></h2>");
        dv = aDataSet.Tables[0].DefaultView;
        GridView1.DataSource = dv;
        GridView1.DataBind();
      }
      catch (Exception e)
      {
        debug(true, "<br/><b style='color: rgb(255,0,0);'>Your search returned no results.</b><br/><span style=''>" + e.Message + "<br/>" + e.InnerException + e.Source + "</span>");
      }
    }
  }
4

1 回答 1

0

我决定对场地进行消毒,如果string eval = System.Byte[]

public string SanitizeField(SearchResultCollection result, string field)
{
  StringBuilder sb = new StringBuilder();
  foreach (object val in result[0].Properties[field])
  {
    sb.Append("<" + field + ">" + val + "</" + field + ">");
  }
  return sb.ToString();
}
于 2012-11-05T17:31:40.213 回答