Risultati rifiniti di sicurezza per query personalizzata sulla proprietà
-
28-09-2020 - |
Domanda
I siti nella mia raccolta del sito utilizzano una proprietà personalizzata per determinare il "tipo" del sito.Ad esempio.
web.Properties["SiteCategory"] = "SomeCategory1";
.
Sto pensando di creare una web part per mostrare tutti i siti nella mia raccolta del sito che hanno proprietà personalizzate.
Ecco uno snippet di quello che sto pensando di fare:
SPSite site = SPContext.Current.Site;
foreach (SPWeb web in site.AllWebs)
{
if (web.Properties["SiteCategory"] == "SomeCategory1") {
/* Insert code to display the current site URL on the web part */
}
}
.
Il risultato sarà la sicurezza rifinita per l'utente corrente?Oppure mostrerebbe solo tutti i siti nella collezione del sito?Cosa avrei bisogno di assicurarmi che sia rifinita la sicurezza?
Inoltre, performance-saggio, è un'opzione praticabile?Se hai qualche altro modo per farlo, sono tutte orecchie.
Soluzione
Utilizzare il seguente codice:
using(SPSite site = new SPSite("http://example/site/"))
{
using (SPWeb web = site.OpenWeb())
{
SPWebCollection webCollection = web.GetSubwebsForCurrentUser();
foreach (SPWeb web in webCollection)
{
if (web.Properties["SiteCategory"] == "SomeCategory1")
{}
}
}
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange