Mamy część internetową, która ładuje dokument do biblioteki dokumentów. Użytkownik przesyłający dokument może nie mieć dostępu do docelowej lokalizacji, więc kod dodający plik jest wykonywany w bloku RunWithElevatedPrivileges. Oznacza to, że pole "Zmodyfikowane przez" jest zawsze ustawione na Konto systemowe. Oto kod:W jaki sposób zmienić "Zmodyfikowane przez" podczas korzystania z RunWithElevatedPrivileges?
SPSecurity.RunWithElevatedPrivileges(
delegate
{
using (SPSite elevatedSite = new SPSite(SPContext.Current.Site.Url))
using (SPWeb targetWeb = elevatedSite.OpenWeb(webUrl))
{
targetWeb.AllowUnsafeUpdates = true;
SPFile newFile = files.Add(filename, file);
SPListItem item = newFile.Item;
// TODO: Insert code to set Modified By
item.SystemUpdate();
}
}
}
„Zmodyfikowany przez” pole musi być ustawiona nazwa bieżącego użytkownika (w linii powyżej TODO), ale żaden z poniższych prób pracowali:
item["Modified By"] = SPContext.Current.Web.CurrentUser;
item["Author"] = SPContext.Current.Web.CurrentUser;
item["Modified By"] = new SPFieldUserValue(
SPContext.Current.Web, SPContext.Current.Web.CurrentUser.ID,
SPContext.Current.Web.CurrentUser.Name);
item["Author"] = new SPFieldUserValue(
SPContext.Current.Web, SPContext.Current.Web.CurrentUser.ID,
SPContext.Current.Web.CurrentUser.Name);
Czy ktoś wie o rozwiązaniu, które umożliwia zmianę wartości "Zmodyfikowane według"?
Ogromna pomoc, +1 ... –
Dziwne zachowanie połączeń. Dziękujemy za opublikowanie rozwiązania. Pomogło mi. –
Mam problem z biblioteką dokumentów, w której włączono opcję odprawiania się i wymeldowywania. więc kiedy otrzymuję nazwę itemupdate, nadal otrzymuję modyfikację jako "konto systemowe" i kiedy próbuję z listitem ["Editor"] = ospuser.ID; , ponownie zgłaszam błąd i błąd odprawy. pls pomoc – SaMolPP