Dela via


Överväganden för sandbox-lösning

Lösningar i begränsat läge är en funktion i Microsoft SharePoint 2010 som möjliggör för användare av webbplatssamlingar att ladda upp sina egna anpassade kodlösningar. En vanlig sandboxad lösning är att användare laddar upp sina egna webbdelar.

Ett sandboxat SharePoint-program körs i en säker, övervakad process som har åtkomst till en begränsad del av webbfarmen. Microsoft SharePoint 2010 använder en kombination av funktioner, lösningsgallerier, lösningsövervakning och ett valideringsramverk för att aktivera lösningar i begränsat läge.

Ange projektförtroendenivå

Visual Studio stöder lösningar i begränsat läge via en boolesk projektegenskap med namnet Sandboxed Solution. Den här egenskapen kan ställas in när som helst i projektet, eller så kan den anges när du skapar projektet i SharePoint-anpassningsguiden.

Anmärkning

Om du ändrar egenskapen Sandboxed Solution för ett projekt när det har skapats kan det orsaka valideringsfel.

Lösningen anses vara en lösning med servergruppsomfång om egenskapen Sandboxed Solution är inställd på false eller om du väljer alternativet Distribuera som en servergruppslösning . Lösningen behandlas dock på ett annat sätt än en servergruppslösning om egenskapen Sandboxed Solution är inställd på true eller om du väljer alternativet Distribuera som en lösning i begränsat läge i guiden.

SharePoint-webbplatshierarki

För att förstå hur lösningar i begränsat läge fungerar hjälper det att veta att SharePoint-webbplatser är hierarkiska i omfånget. Det översta elementet kallas webbgruppen och andra element är underordnade det:

Webbfarm

Webbapplikation A

Webbplatssamling A1

Webbplats A1a

Webbprogram B

Webbplatssamling B1

Webbplats B1a

Webbplats B1b

Webbplatssamling B2

Webbplats B2a

Som du ser kan webbgrupper innehålla ett eller flera webbprogram, som i sin tur kan innehålla en eller flera webbplatssamlingar, som kan ha underwebbplatser och så vidare. Ändringar som görs i en webbplatssamling påverkar endast webbplatssamlingen och ingen annan. Ändringar som görs på webbgruppsnivå påverkar dock alla webbplatssamlingar i servergruppen.

Med Windows SharePoint Services (WSS) 3.0 kan du endast distribuera lösningar till servergruppsnivå, men med Microsoft SharePoint Foundation kan du distribuera till antingen servergruppsnivå (servergruppslösning) eller webbplatssamlingsnivå (lösning i begränsat läge).

Varför lösningar i begränsat läge?

I WSS 3.0 kunde lösningar endast distribueras till servergruppsnivå. Detta innebar att potentiellt skadliga eller destabiliserande lösningar kunde distribueras som påverkade hela webbgruppen och alla andra webbplatssamlingar och program som körs under den. Men genom att använda sandlådelösningar kan du distribuera dina lösningar till ett delområde av farmen, en specifik webbplatssamling. För att ge ytterligare skydd läses inte lösningens sammansättning in i huvud-IIS-processen (w3wp.exe). I stället läses den in i en separat process (SPUCWorkerProcess.exe). Den här processen övervakas och implementerar kvoter och begränsningar för att skydda servergruppen mot sandlåde-lösningar som utför skadliga aktiviteter, till exempel att köra täta loopar som förbrukar CPU-cykler.

Windows SharePoint Services 2010 har en funktion som kallas "webbplatssamlingens lösningsgalleri". Du kan komma åt den här funktionen från sidan Central administration i SharePoint 2010 eller genom att öppna menyn Webbplatsåtgärder , välja Webbplatsinställningar och sedan välja länken Lösningar under Gallerier på SharePoint-webbplatsen. Lösningsgallerier är lagringsplatser för lösningar som gör det möjligt för webbplatssamlingsadministratörer att hantera lösningar i sina webbplatssamlingar.

Lösningsgalleriet är ett dokumentbibliotek som lagras på SharePoint-webbplatsens rotwebbplats. Lösningsgalleriet ersätter webbplatsmallar och stöder lösningspaket. När ett SharePoint-lösningspaket (.wsp) laddas upp bearbetas det som en sandlådelösning.

Begränsningar för sandbox-lösning

När en sandboxlösning distribueras, begränsas utbudet av tillgängliga SharePoint-funktioner för att minska eventuella säkerhetsrisker. Några av dessa begränsningar omfattar följande:

  • Sandbox-lösningar har en begränsad delmängd av distributionsbara lösningselement som är tillgängliga för dem. Potentiellt sårbara SharePoint-projektmallar, till exempel webbplatsdefinitioner och arbetsflöden, är inte tillgängliga.

  • SharePoint kör lösningskod i begränsat läge i en process (SPUCWorkerProcess.exe) separat från huvudprocessen för IIS-programpoolen (w3wp.exe).

  • Mappade mappar kan inte läggas till i projektet.

  • Typer i Microsoft SharePoint Server-sammansättningen Microsoft.Office.Server kan inte användas i sandbox-lösningar. Dessutom kan endast typer i Microsoft SharePoint Foundation-sammansättningen Microsoft.SharePoint användas i lösningar i begränsat läge.

    Observera att det inte påverkar SharePoint-servern att ange en SharePoint-lösning som en lösning i begränsat läge. det avgör bara hur SharePoint-projektet distribueras till SharePoint från Visual Studio och vilka sammansättningar det binder till. Det påverkar inte den genererade .wsp-filen och .wsp-filen har inga data som direkt korrelerar med egenskapen Sandboxed Solution .

Funktioner och element i sandboxade lösningar

Sandboxade lösningar stöder följande funktioner och element:

  • Innehållstyper/fält

  • Anpassade åtgärder

  • Deklarativa arbetsflöden

  • Händelsemottagare

  • Bildtexter för funktioner

  • Definition av lista

  • Lista instanser

  • Modul/filer

  • Navigering

  • Onet.xml

  • SPItemEventReceiver

  • SPListEventReceiver

  • SPWebEventReceiver

  • Stöd för alla webbdelar som härleds från System.Web.UI.WebControls.WebParts.WebPart

  • Webbdelar

  • WebTemplate-funktionselement (i stället för Webtemp.xml)

  • Visuella webbdelar

    Lösningar i begränsat läge stöder inte följande funktioner och element:

  • Applikationssidor

  • Anpassad åtgärdsgrupp

  • Funktioner på farmnivå

  • HideCustomAction komponent

  • Funktioner med webbprogramsomfång

  • Arbetsflöden med kod