Folgen Sie programmgesteuert einer Website, aber einen Fehler erhalten
Frage
Ich habe eine Methode in meiner ASPX.CS-Datei, die sicherstellen sollen, dass der aktuelle Benutzer der aktuellen Site folgt. Wenn ich ULs überprüfe, erhalte ich das:
verfolgecent.followitem: Ausnahme: Microsoft.Sharepoint.spexception: Die Sicherheitsvalidierung für diese Seite ist ungültig. Klicken Sie in Ihrem zurück Webbrowser, aktualisieren Sie die Seite und versuchen Sie Ihre Operation erneut. ---> System.Runtime.Interopservices.comexception: Die Sicherheitsvalidierung Für diese Seite ist ungültig. Klicken Sie in Ihrem Webbrowser zurück, aktualisieren Sie das Seite, und versuchen Sie Ihre Operation wieder 0x8102006D
konnte der URL generationstabelletagcodcode nicht folgen
und
Microsoft.Office.Server.Social.SpeicialFollowingManager.Follow: Microsoft.Office.server.userProfiles.followedContentexception: INTERNELROR: Der Artikel konnte nicht folgen X at Microsoft.Office.server.userProfiles.FollowedContent.followItem (weiterwerker. Artikel, boolean isinternal)
Mein Code sieht so aus: generasacodicetagpre.
Wenn ich dies debuge, ist dies die Ausnahme, die ich bei .follow () Methode:
{"Die Operation ist fehlgeschlagen, da ein interner Fehler aufgetreten ist. intern Modellname: Microsoft.Office.Server.userProfiles.FollowedContentexception. Interner Fehlercode: 11. "}
Jede Art von Hilfe wird geschätzt
Lösung
Zunächst sollten Sie nur neu erstellte SPSITE- und SPWEB-Instanzen in der Delegation von RunwithelevatedPrivilegs verwenden.Ändern Sie die folgende Zeile in Ihrem Code
SPServiceContext context = SPServiceContext.GetContext(currentsite);
zu diesem: generasacodicetagpre.
Ein anderes Problem ist Sicherheitsvalidierung auf der Seite, und Sie müssen ValidateFormDigest -Methode, bevor Sie die Höhe ausführen, da Ihr Code den Schreibvorgang ausführt.Fügen Sie also die folgende Zeile hinzu, bevor SPSECURITY.RunWithelevatedPrivilegile in Ihrem Code in Ihrem Code: generasacodicetagpre.