Custom MembershipProvider: Problem beim Einbinden in SharePoint Webanwendung

05/05/2009 - 09:55 von vogel.robert | Report spam
Hallo Zusammen!

Da dies mein erster Post hier ist möchte ich mich zunàchst kurz
vorstellen. Mein Name ist Robert Vogel - wie ihr meiner E-Mail-Adresse
unschwer entnehmen könnt - und ich schreibe derzeit im Fachbereich
Medieninformatik meine Diplomarbeit. Thema der Diplomarbeit ist das
Erstellen eines Webportals für Kunden der Firma, bei der ich die
Arbeit schreibe. Authentifiziert soll dabei gegen eine Tabelle in
einer SQL-Datenbank (MS SQL Server 2008) werden. Dazu wollte ich einen
eigenen MembershipProvider (Authentifizierungsanbieter) schreiben, bin
jedoch auf ein Problem mit der Bereitstellung im SharePoint gestoßen.
Nachdem ich jetzt viele Quellen erfolglos nach einer Lösung
durchforstet habe hoffe ich, dass mir hier jemand weiterhelfen kann.

Zuerst eine kurze Beschreibung meiner Entwicklungsumgebung:
- Virtueller PC (MS Virtual PC 2007 SP1)
- Windows Server 2008
- MS SQL Server 2008
- Visual Studio 2008 SP1 mit "Extensions for WSS 3.0 v1.3 March CTP"
- MS Office SharePoint Server 2007 (SP1 + Infrastrukturupdate)

Was ich bisher gemacht habe:
- Erstellen eines MembershipProviders
+ Klassenbibliotheksprojekt: Ableiten von der Basisklasse
"System.Web.Security.MembershipProvider"
+ Implementieren der wichtigsten abstrakten Methoden und
Eigenschaften

- Testen des MembershipProviders in einer ASP.NET-Website
+ Implementierung funktioniert

- Einbinden des MembershipProviders in SharePoint
+ Deployen des Assemblies in den GAC mittels gacutil.exe
+ Einbindes des Assemblies in die web.config der entsprechenden
SharePoint Webanwendung durch den Eintrag:

<membership>
<providers>
<clear />
<add name="PpCompanyMembershipProvider"
type="VEDA.AspNet.Membership.PpCompanyMembershipProvider,
ppCompanyMembershipProvider, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=1d6800187f93fedf" />
</providers>
</membership>

(Ein separater ConnectionString Eintrag ist nicht nötig, da im Moment
diese Information hardcoded in der Klasse vorliegt)

+ Einstellen der Webanwendung: ZA->Anwendungsverwaltung-

Authentifizierungsanbieter->Authentifizierung bearbeiten:


Formularauthentifizierung aktiviert, den entprechenden Namen des
MembershipProviders aus der web.config angegeben.
+ Test: geht nicht.

Was genau geht nicht? Wenn ich die Website (Top-Level-Website der
Websitesammlung auf Wurzelebene der Webanwendung) lade kommt wie
erwartet das Loginformular. Kein Fehler in der web.config. Nach dem
Eingeben von Benutzernamen und Passwort und dem Ansenden wird einfach
die Seite neu geladen. Keine Fehlermeldung, keine
Zugriffsverweigerung, gar nichts. Einfach nur nochmal die Loginmaske.
Bei Falscheingabe kommt auch kein Fehler.
Ich habe versucht zu debuggen indem ich mich an den w3wp.exe-Prozess
hànge, aber auch da kein Erfolg. Es wir nicht in die entsprechenden
Breaktpoints gesprungen, was den Verdacht nahe legt, dass das Assembly
gar nicht erst geladen wird.

So, ich hoffe das war jetzt nicht zu viel Text, aber ich dachte mir
ich beschreibe lieber zu ausführlich, als zu knapp. Es würde mir sehr
helfen, wenn ihr eine Idee hàttet, was ich falsch gemacht haben
könnte. Oder vielleicht habt ihr einen Link auf eine gute Anleitung zu
diesem Thema. Ich bin was ASP.NET angeht noch relativ neu - arbeite
seit gerademal etwa einem Jahr damit (wobei arbeiten vielleicht
übertrieben ausgedrückt ist).

Also schon mal vielen Dank!

Schöne Grüße,
Robert Vogel
 

Lesen sie die antworten

#1 vogel.robert
13/05/2009 - 15:46 | Warnen spam
On 5 Mai, 09:55, wrote:
Hallo Zusammen!

Da dies mein erster Post hier ist möchte ich mich zunàchst kurz
vorstellen. Mein Name ist Robert Vogel - wie ihr meiner E-Mail-Adresse
unschwer entnehmen könnt - und ich schreibe derzeit im Fachbereich
Medieninformatik meine Diplomarbeit. Thema der Diplomarbeit ist das
Erstellen eines Webportals für Kunden der Firma, bei der ich die
Arbeit schreibe. Authentifiziert soll dabei gegen eine Tabelle in
einer SQL-Datenbank (MS SQL Server 2008) werden. Dazu wollte ich einen
eigenen MembershipProvider (Authentifizierungsanbieter) schreiben, bin
jedoch auf ein Problem mit der Bereitstellung im SharePoint gestoßen.
Nachdem ich jetzt viele Quellen erfolglos nach einer Lösung
durchforstet habe hoffe ich, dass mir hier jemand weiterhelfen kann.

Zuerst eine kurze Beschreibung meiner Entwicklungsumgebung:
- Virtueller PC (MS Virtual PC 2007 SP1)
- Windows Server 2008
- MS SQL Server 2008
- Visual Studio 2008 SP1 mit "Extensions for WSS 3.0 v1.3 March CTP"
- MS Office SharePoint Server 2007 (SP1 + Infrastrukturupdate)

Was ich bisher gemacht habe:
- Erstellen eines MembershipProviders
    + Klassenbibliotheksprojekt: Ableiten von der Basisklasse
"System.Web.Security.MembershipProvider"
    + Implementieren der wichtigsten abstrakten Methoden und
Eigenschaften

- Testen des MembershipProviders in einer ASP.NET-Website
    + Implementierung funktioniert

- Einbinden des MembershipProviders in SharePoint
    + Deployen des Assemblies in den GAC mittels gacutil.exe
    + Einbindes des Assemblies in die web.config der entsprechenden
SharePoint Webanwendung durch den Eintrag:

<membership>
      <providers>
          <clear />
          <add name="PpCompanyMembershipProvider"
type="VEDA.AspNet.Membership.PpCompanyMembershipProvider,
ppCompanyMembershipProvider, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=1d6800187f93fedf" />
       </providers>
</membership>

(Ein separater ConnectionString Eintrag ist nicht nötig, da im Moment
diese Information hardcoded in der Klasse vorliegt)

    + Einstellen der Webanwendung: ZA->Anwendungsverwaltung->Authentifizierungsanbieter->Authentifizierung bearbeiten:

Formularauthentifizierung aktiviert, den entprechenden Namen des
MembershipProviders aus der web.config angegeben.
   + Test: geht nicht.

Was genau geht nicht? Wenn ich die Website (Top-Level-Website der
Websitesammlung auf Wurzelebene der Webanwendung) lade kommt wie
erwartet das Loginformular. Kein Fehler in der web.config. Nach dem
Eingeben von Benutzernamen und Passwort und dem Ansenden wird einfach
die Seite neu geladen. Keine Fehlermeldung, keine
Zugriffsverweigerung, gar nichts. Einfach nur nochmal die Loginmaske.
Bei Falscheingabe kommt auch kein Fehler.
Ich habe versucht zu debuggen indem ich mich an den w3wp.exe-Prozess
hànge, aber auch da kein Erfolg. Es wir nicht in die entsprechenden
Breaktpoints gesprungen, was den Verdacht nahe legt, dass das Assembly
gar nicht erst geladen wird.

So, ich hoffe das war jetzt nicht zu viel Text, aber ich dachte mir
ich beschreibe lieber zu ausführlich, als zu knapp. Es würde mir sehr
helfen, wenn ihr eine Idee hàttet, was ich falsch gemacht haben
könnte. Oder vielleicht habt ihr einen Link auf eine gute Anleitung zu
diesem Thema. Ich bin was ASP.NET angeht noch relativ neu - arbeite
seit gerademal etwa einem Jahr damit (wobei arbeiten vielleicht
übertrieben ausgedrückt ist).

Also schon mal vielen Dank!

Schöne Grüße,
Robert Vogel




Update: Das Problem hat sich gelöst. Leider kann ich keine
Lösungsbeschreibung geben, da ich selbst nicht sicher bin woran es
liegt. Nachdem ich zum x-ten mal alle Schritte nochmal durchgemacht
habe ging es auf einmal. Ich muss vorher einfach irgendwo einen
Leichtsinnsfehler gemacht haben. Also, vielen Dank trotzdem an alle
die sich mit mir den Kopf darüber zerbrochen haben.

Ähnliche fragen