Anonymes Download WebPart

Der WebPart bietet auf einem anonymen Internetauftritt die Möglichkeit, für Kunden ohne Authentifizierung im SharePoint, Dateien zum Download bereitzustellen.
Dazu wird dem Kunden ein eindeutiger Downloadlink zugeschickt damit dieser die Datei herunterladen kann. Andere Personen haben ohne Kenntnis des eindeutigen Link keine Möglichkeit an die Datei zu gelangen und können somit nicht auf die Datei zugreifen.

Mehr über das "Anonyme Download WebPart" lesen

 

Als ich heute eine neue Solution für ein Visual Webpart erstellt habe musste ich leider feststellen, dass Visual Studio 2010 noch einen kleinen Bug beinhaltet.

Ich habe den Namespace geändert, jedoch wurde nach dem Deployment die Fehlermeldung “Webpart ist not registered as save” angezeigt, da als SafeControl Eintrag für die web.config immer noch die Endung “…mynamespace.VisualWebpart1” verwendet wurde.

Der Grund ist die *.spdata des Usercontrols, die nicht automatisch aktualisiert wird:

image

Der Assemblyname ist hierbei mit einer Variablen hinterlegt, der Namespace ist jedoch hart kodiert und wird nicht automatisch angepasst. Nach der manuellen Anpassung muss die Solution geschlossen, neu geöffnet und kompiliert werden. Im Anschluss daran kann ein neues Deployment oder auch Debugging erfolgen, dann funktioniert alles wie gewünscht.

 

Unter SharePoint 2010 ist es nun möglich, eigene Pages für bestimmte Events zu hinterlegen. Dies geht über die SPCustomPage Enumeration:

none  
AccessDenied Specifies AccessDenied.aspx.
Confirmation Specifies Confirmation.aspx.
Error Specifies Error.aspx.
Login Specifies Login.aspx.
RequestAccess Specifies ReqAcc.aspx.
Signout Specifies SignOut.aspx.
WebDeleted Specifies WebDeleted.aspx.

Die neue Page kann über ein Webapplication Feature per FeatureReceiver zugewiesen werden.

    const string ErrorPage = "/_layouts/CustomEventPages/error.aspx";
    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
 
        SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
 
        if (webApp != null)
        {
            if (!webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.Error, ErrorPage))
            {
                throw new Exception("Neue Fehlerseite konnte nicht registriert werden!");
            }
 
            webApp.Update(true);
        }
    }

Hierbei wird nun eine neue Errorpage gesetzt, die zusätzliche Informationen für den Anwender oder ein eigenes Layout beinhalten könnte.

© 2012 Daniel Buschke - Blog Suffusion theme by Sayontan Sinha