Frage

Hintergrund:

Ich habe ein integriertes Web-Teil von Custom SharePoint 2010, der von System.Web.UI.WebControls.WebParts.WebPart erbgt, der eine von Ihnen definierte Eigenschaft aufweist: generasacodicetagpre.

Die Befugnisse - das möchte den Wert der Eigenschaft für jeden seiner 3.000 Benutzer kennen.Ich bin bereits vertraut, wie ich den SplimitedWebPartManager So extrahieren Sie die Eigenschaft in Shared View oder meine eigene persönliche Ansicht , verwenden Sie den Code ähnlich wie: generasacodicetagpre.

also die frage:

Ich stecke auf dem Sammeln dieser Informationen für alle Benutzer .Angenommen, ich habe bereits oder wissen Sie, wie Sie Abrufen, eine Liste der Anmeldenamen oder Spieger-Objekte abrufen, wie setze ich das Web-Part-Eigenschaft für alle Benutzer ab?Ich kann Vorschläge in C #, Vb.net oder PowerShell verwenden.

War es hilfreich?

Lösung

Try this code - I haven't tested it but I think it should work.

const string absolutePageUrl = "http://spsite:5000/Pages/SomePage.aspx";

foreach (SPUser user in SPContext.Current.Site.RootWeb.AllUsers.Cast<SPUser>())
{
    if (!user.LoginName.StartsWith("DOMAIN NAME"))
        continue;

    using (SPSite site = new SPSite(absolutePageUrl, user.UserToken))
    using (SPWeb web = site.OpenWeb())
    {
        var mgr = web.GetLimitedWebPartManager(absolutePageUrl, PersonalizationScope.User);
        var webPart = mgr.WebParts.OfType<MyWebPart>().FirstOrDefault();
        var prop = webPart.CustomProp;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top