Probleme mit dasBlog 1.8.5x


Thomas Wölfer
Thomas Wölfer

19. Juni 2006


Bei der Umstellung des Servers haben wir auch gleich eine Aktualisierung der Blog-Software vorgenommen. Momentan läuft daher dasBlog 1.8.5x. Dabei gab es aber nach der Umstellung ein Problem: Die Administrator-Werkzeugleiste war nicht mehr dazu zu bewegen, angezeigt zu werden. Mit anderen Worten: Man konnte sich zwar anmelden - aber es gab keinerlei Zugriff auf die Werkzeuge zum schreiben von Einträgen mehr. Ärgerlich.

Offenbar ist das auch noch ein bisher "unbekanntes" Problem: Scott konnte jedenfalls nicht besonders viel dazu sagen. Also habe ich in den saueren Apfel gebissen, VS 2005 auf dem Server installiert, ein eigenes Build gemacht und gesucht...

Den Grund fürs Problem konnte ich allerdings nicht auffinden - es gibt aber einen Workaround, und der geht so: Der Kern des Problem hängt irgendwie mit dem einigermassen neue "Rollen" System zusammen. Beim neuen dasBlog kann es mehrere Autoren in einem Blog geben, und obendrein einen "admin". Die Autoren sind Teil der Rolle "contributor", der Administrator ist in der Rolle "admin". Im Code sieht das dann so aus, das es eigentlich zwei Stufen der anmeldung gibt: Zunächst einmal wird das Passwort verifiziert, beim Zugriff auf die einzelnen Funktionen von dasBlog wird dann jedesmal nachgesehen, ob der momentan angemeldete User zu einer Rolle gehört, die Zugriff auf diese Funktion hat. Auf diese Weise bekommt dann der Admin Zugriff auf alles (da er in der Rolle "admin" ist), die Contributors aber nur Zugriff auf den Posting-Editor.

Zumindest in der Theorie. In der Praxis war es zumindest bei mir so, das ich mich zwar authentifizieren konnte - mich danach aber in überhaupt keiner Rolle befand, und damit auf gar nichts Zugriff bekam. Wer weiss woran das liegen kann: Bin für Vorschläge offen. Bis dahin habe ich in mein Build folgendes Workaround eingebaut: In SiteSecurity.cs gibt es die Funktion IsInRole() - und die habe ich mehr oder minder entfernt. Statt wie bisher nachzusehen, ob die Rolle "passt", schaut die Methode nur noch nach, ob man authentifiziert ist - und liefert dann "true". Wenigstens kann ich seit dem wieder Einträge schreiben... :-)