Ich habe einen versteckten Webpart, der den Query-String-Wert "optout=Yes" liest. Dieses Optout = Ja, dann muss ich die Profileigenschaft aktualisieren. Wenn Sie in meinem Code sehen. Es scheitert an " userprof.Commit() " und das Werfen von " Aktualisierungen sind derzeit bei GET-Anfragen nicht zulässig. Um Aktualisierungen bei einer GET-Anfrage zuzulassen, setzen Sie die Eigenschaft "AllowUnsafeUpdates" auf SPWeb " . Gibt es eine Lösung für dieses Problem?
private void OptOutMemberInvitation()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//update the invitee's Profile property
UpdateInviteeOptOutProfile(InviteeConstitID);
});
}
private void UpdateInviteeOptOutProfile(string inviteeSiteColUrl)
{
ServerContext sc = ServerContext.Current;
UserProfileManager upm = new UserProfileManager(sc);
//Get the user profile
Microsoft.Office.Server.UserProfiles.UserProfile userprof = upm.GetUserProfile(MemberConstitID);
SPWeb web = userprof.PersonalSite.RootWeb;
//make sure we can update our list
web.AllowUnsafeUpdates = true;
web.Update();
//Update the OptOut Property on the user's profile.
userprof["OptOut"].Value = "Yes";
userprof.Commit(); //Fails here
//update the list item to persist it to list
web.AllowUnsafeUpdates = false;
//siteCol.Close();
//siteCol.Dispose();
}