Nous avons un problème avec le champ de recherche de SharePoint. Chaque fois que nous essayons de chercher quelque chose nous obtenons:Recherche dans SharePoint 2007 (wss) et Impossible de valider les données Exception
Impossible de valider les données. à System.Web.Configuration.MachineKeySection.EncryptOrDecryptData (Boolean fEncrypt, byte [] buf, byte [] modificateur, Int32 début, la longueur Int32, ivtype ivtype, Boolean useValidationSymAlgo) à System.Web.UI.ObjectStateFormatter .Deserialize (Chaîne inputString) exeption.
Est-ce que quelqu'un connaît la raison de cette exception, ou un moyen de contourner ce problème?
Nouvelle entrée:
J'utilise un SPGridView où j'utilise la propriété DataKeys dans une partie web. La partie web fonctionne, mais nous avons trouvé que l'utilisation de la propriété datakeys casse la recherche en cela si vous essayez d'utiliser la zone de recherche et cliquez sur le bouton de recherche, elle obtient cette exception:
Impossible de valider les données. à System.Web.Configuration.MachineKeySection.EncryptOrDecryptData (boolean fEncrypt, octet [] buf, octet [] modificateur, début Int32, longueur Int32, IVType ivType, Boolean useValidationSymAlgo) à System.Web.UI.ObjectStateFormatter.Deserialize (String inputString)
Voici ce que je tryed faire:
faire le gridview pas spgridview et définir autogenerate vrai (travaux) Retirer les DataKeyNames (travaux) test avec un gridvew vide (Failes) test avec un non-empty gridview (failes) Modification des clés de la machine (défaillances) Statut de virage sur la grille (échecs) Déplacer le gridview ti un fichier ascx (échecs)
Je n'arrive pas à comprendre cela. Est-ce que enyone a eu cette erreur et a été capable de contourner le problème?
EDit 10.09.2009
C'est le dernier code je l'ai testé. J'ai utilisé un MSDN excample comme référence. J'ai aussi essayé sans table de données MSDN Example
public class TestErrorGridView : System.Web.UI.WebControls.WebParts.WebPart
{
Control ascxToAdd;
protected DataTable PropertyCollection = new DataTable();
private DataColumn key;
public TestErrorGridView()
{
key = PropertyCollection.Columns.Add("ID", typeof(string));
PropertyCollection.Columns.Add("Name", typeof(string));
}
public void AddProperty(TestBindObject data)
{
DataRow newRow = PropertyCollection.Rows.Add();
newRow["ID "] = data.ID;
newRow["Name"] = data.Name;
}
public void BindGrid(SPGridView grid)
{
SPBoundField fldPropertyName = new SPBoundField();
fldPropertyName.HeaderText = "ID";
fldPropertyName.DataField = "ID";
grid.Columns.Add(fldPropertyName);
SPBoundField fldPropertyValue = new SPBoundField();
fldPropertyValue.HeaderText = "Name";
fldPropertyValue.DataField = "Name";
grid.Columns.Add(fldPropertyValue);
PropertyCollection.PrimaryKey = new DataColumn[] { key };
grid.DataSource = PropertyCollection.DefaultView;
grid.DataKeyNames = new string[] { key.ColumnName };
grid.DataBind();
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
}
protected override void CreateChildControls()
{
base.CreateChildControls();
TestBindObject t1 = new TestBindObject() { ID = 1, Name = "Test3" };
this.AddProperty(t1);
SPGridView testGrid = new SPGridView() { AutoGenerateColumns = false };
this.BindGrid(testGrid);
this.Controls.Add(testGrid);
}
}
[Serializable]
public class TestBindObject
{
public int ID { get; set; }
public string Name { get; set; }
}
Je ne sais pas Alex, cela pourrait juste être lié à web.config .... Je suis d'accord avec Kane ici, il devrait tenir compte de la machinekey dans tous les web.configs – Colin
pouvez-vous s'il vous plaît poster un code de grille? –