SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




FBA mit Wss 3.0

Geprüfte Antwort Dieser Beitrag hat 22 Antworten

Ohne Rang
77 Beiträge
HuLa erstellt 8 Dez. 2009 10:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo

Ich habe folgendes Problem und hoffe sehr, das mir jemand weiter helfen kann.

 

Ich habe mehrere Anleitungen zu FBA mit SharePoint ausprobiert und jedesmal hat es nicht funktioniert. Spätestens bei der Anmeldung an der Webanwendung kommt ein unbekannter Fehler.

 

Die letzte Anleitung war eine Webcastserie von Fabian Moritz.

http://sharepointcommunity.de/blogs/fabianm/archive/2006/11/23/5-screencasts-about-form-based-authentication-in-sharepoint-2007.aspx

Diese waren eigentlich sehr gut und leicht nachvollziehbar aber leider hab ich auch hier das selbe Problem. Nachdem ich alles so wie beschrieben durchgeführt hatte, bekam ich den selben Fehler. Ich konnte mich an der Webanwendung, mit den zuvor definierten Benutzerdaten, nicht anmelden. SharePoint sagt: Unbekannter Fehler.

 

Ich bin für jede Antwort dankbar.

 

mfg HuLa :-)

Alle Antworten

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 8 Dez. 2009 12:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

schon mal die Fehleranzeige umgestellt?

in der Web.config der Anwendung CallStack=true und CustomErrors=Off eingestellt? Dann werden die richtigen Fehlermeldungen angezeigt. Mein Tipp hier ist ein Typofehler in der web.config.

Ohne Rang
77 Beiträge
HuLa Als Antwort am 8 Dez. 2009 13:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die Antwort.

Jetzt sieht man schon mehr.

Die von der Anmeldung angeforderte 'aspnetdb'-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer '...\SHAREPOINT$'.   bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

Aber warum funktioniert jetzt die Anmeldung an der DB nicht?

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 8 Dez. 2009 13:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

bei der Meldung wären meine nächsten Schritte:

- stimmt der DB Name?

- ist in der web.config ein ConnectionString zur DB hinterlegt, der auch funktioniert?

- Anmeldung an der DB mit Windows Authentifizierung oder SQL Authentifizierung? Letzteres bevorzuge ich, die Logindaten müssen dann im ConnectionString enthalten sein.

- ansonsten mal in den SQL Server reinschauen, vielleicht ist die Datenbank offline oder der User hat keine Berechtigungen, auf die Datenbank zu connecten ...

viele Möglichkeiten...

Ohne Rang
77 Beiträge
HuLa Als Antwort am 8 Dez. 2009 13:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also der DB Name stimmt.

Hier mal der ConnectionString aus der Webanwendung:

<connectionStrings>
    <remove name="AspNetSqlMembershipProvider" />
    <add name="AspNetSqlMembershipProvider" connectionString="data source=192.168.29.9; initial catalog=aspnetdb; integrated security=sspi;" />
  </connectionStrings>

Und hier mal der ConnectionString aus der Zentral Administration - der funktioniert

<connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer" connectionString="data source=192.168.29.9; initial catalog=aspnetdb; integrated security=sspi;"/>
  </connectionStrings>

Die Anmeldung an der DB erfolgt über die Windows-Authentifizierung und der SQL Server läuft.

Ich kann in der ZA auch Benutzer aus der DB der Webanwendung hinzufügen.

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 8 Dez. 2009 13:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

sind die AppPool Identities in der ZA und Webanwendung identisch?

Ich habe bei ConnectionStrings mit Windows Auth keine guten Erfahrungen gemacht, ich empfehle immer, auf die SQL Auth umzusteigen gerade wegen solchen Fällen. In der Webanwendung wird ein anderer User zum Connect genommen als in der ZA. Daher funkt es mit der ZA und in der Webanwendung nicht.

Ohne Rang
77 Beiträge
HuLa Als Antwort am 8 Dez. 2009 13:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was bedeutet AppPool Identities?

Kann ich in dem ConnString die Anmeldedaten der Windows.Auth. nicht mitgeben?

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 8 Dez. 2009 13:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

im IIS (Internet Information Services, per Kommandozeile mittels "inetmgr" aufzurufen) sind die ganzen Webs gespeichert, welche auf den Server vorhanden sind. Und dort findest Du auch die sogenannten Application Pools. Jede Webanwendung ist einem AppPool zugeordnet, welcher in einem Benutzerkontext arbeitet und Prozesse in diesem Benutzerkontext auch arbeiten lässt. Manche Jobs z.B. im SharePoint werden mit dem jeweilig dort hinterlegten Benutzer gestartet. Im Normalfall ist anhand der Installation und hoffentlich auch vorhandenen Dokumentation klar geklärt, welcher Benutzer dort eingetragen ist. Von Hand darf man die ohne entsprechendes Wissen nicht ändern. Das als "minimale" Hintergrundinfo dazu.

Wenn die beiden unterschiedlich sind, dann wird mit dem jeweiligen User der Connect zur DB versucht (ich hoffe, das stimmt jetzt auch :)

Im Connection String kann man keine Windows Auth Daten mitgeben, nur SQL Auth Daten. Dazu muss der SQL Server die SQL Authentifizierung zulassen und ein entsprechendes Login im SQL Server vorhanden sein und dieses Login auch Berechtigungen auf die Datenbank haben (connect, read und in deinem Fall auf Write ... die Rollen datareader und datawriter könnten Dir da weiterhelfen, manche machen den User auch gleich zum db_owner).

SQL Auth macht der SQL Server bei Standardinstallation nicht, dazu musst Du im Management Studio mittels REchtsklick die Eigenschaften des Servers öffnen und in einem der Register dann sagen "Windows und SQL Authentifzierung" zulassen. Dann kannst Du einen neuen User anlegen, der nicht als Grundlage einen AD/Windows Account hat. Diesen musst Du dann auch im COnnectionString hinterlegen (siehe www.connectionstrings.com)

puhh ... wieder mal ne lange Antwort geworden :=)

Ohne Rang
77 Beiträge
HuLa Als Antwort am 8 Dez. 2009 14:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich danke Dir :-) Auch für das Background-Wissen -- Hab ich auch dringend nötig :-)

Im AppPool der Webanwendung war 'Netzwerkdienst' als Konto angegeben.

Den hab ich jetzt durch den gleichen Account wie bei der ZA ersetzt. Und gucke da :-) es funktioniert.

Jetzt komm ich mit den zuvor in der Db angelegten Benutzer auf die Webanwendung.

Nochmals herzlichen Dank für Deine Antworten.

mfg HuLa :-)

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 8 Dez. 2009 14:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

schön. aber wie schon geschrieben, niemals direkt im IIS machen !!!

ich habe schnell gegoogelt und das hier gefunden: http://weblogs.asp.net/erobillard/archive/2007/07/06/how-to-change-service-accounts-and-their-passwords-in-moss-and-wss-3-0.aspx

Bitte nimm die Änderung so vor, ansonstne kann es sein, dass nun einiges in der Webanwendung nicht mehr funktionieren wird. Und das wollen wir ja nicht :)

Ohne Rang
77 Beiträge
HuLa Als Antwort am 8 Dez. 2009 14:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nochmal Danke.

Ich werde das wie im Link beschrieben durchführen.

 

mfg HuLa :-)

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 09:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo

ich kann mich mit den erstellten Usern aufeinmal nicht mehr über die FBA Seite anmelden.

Das System sagt, dass der Benutzername oder das Passwort nicht stimmen.

Dabei hab ich die so eingegeben wie in der Datenbank.

 

Hat da jemand eine Idee?

 

mfg HuLa

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 9 Dez. 2009 09:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

klar, Du kannst das PW neu setzen

da Du alles schön in der web.config eingetragen hast, gehste in den IIS und verwaltest dort die Benutzer der FBA Datenbank. Mit Windows Server 2008 ist dies ohne Probleme möglich. Wie das mit Windows Server 2003 geht, weiß ich nicht, da ich unter 2003 bisher keinen FBA hatte.

Würde ich über Google mal suchen

 

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 10:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die schnelle Antwort.

Hab mal über google versuchst was dazu zu finden. Ich glaub ich nutze die falsche Begrifffe für die Suche.

Wie löst man das denn mit Server 2008?

 

mfg HuLa

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 9 Dez. 2009 10:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

öffne den IIS

öffne die SharePoint Webseite, bei welcher FBA aktiviert ist

öffne .NET Users im Bereich ASP.NET

nun solltest Du alle User sehen, welche in FBA für die Webseite vorhanden sind

wenn Du niemanden siehst, dann wählen rechts den "Default Provider" aus und nimm den Eintrag, welchen Du in der Web.config konfiguriert hast

mittels Rechtsklick auf Namen dann das PW verändern

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 11:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

OK - Also im IIS6 hab ich keinen Ordner Asp.Net unter der Website.

Bringt es was, wenn ich den IIS7 installiere?

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 9 Dez. 2009 11:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du hast von 2008 gesprochen, daher bin ich von Windows Server 2008 = IIS7 ausgegangen

wenn Du von IIS6 sprichst, dann hast Du einen Windows Server 2003, da kann man keinen IIS7 installieren, den gibt es nur beim 2008er.

beim Googlen ist mir das hier aufgefallen:

http://www.codeproject.com/KB/sharepoint/moss_enableforms.aspx

http://www.asp.net/learn/mvc/tutorial-17-vb.aspx

Du musst wohl in VS.NET ein Projekt erstellen, dann die Web.config mit den Werten aus der SharePoint Web.Config füllen und dann auf "ASP.NET Configuration" im VS klicken.

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 12:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Na eigentlich stand im ersten Beitrag das ich nen Server 2003 und nen SQL 2008 hab.

Die ASP.Net Konf. hab ich schon ausgeführt. Darüber leg ich momentan die Benutzer in der DB an.

Nur akzeptiert die Webanwendung dieses Benutzerdaten jetzt aufeinmal nicht mehr?

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 9 Dez. 2009 12:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

naja, Beitrag 1 ist auf Seite 1 und wir mittlerweile auf Seite 2 gelandet :)

egal, web.config Einträge der Anwendung korrekt, über welche Du auf die FBA Datenbank zugreifen willst?

Der Windows User, welchen Du jetzt vermutlich hast, wenn die ASP.NET Konfiguration ausführst, wird vermutlich nicht derselbe sein, welcher im Application Pool eingestellt ist. Auch das ist ein Grund, warum ich im ConnectionString die SQL Auth Variante bevorzuge. Ansonsten muss Du nun rausbekommen, mit welchem User Du gerade auf die FBA DB zugreifst und die Berechtigungen geben.

Wenn die Webanwendung die Benutzerdaten nicht akzeptiert, dann kann es auch daran liegen, dass der Benutzer in der Zwischenzeit durch zu häufige Fehleingaben gesperrt wurde. Dann musst Du in die FBA Datenbank reingehen und in den Tabellen den User wieder freischalten. Ich glaube, die Tabelle hatte irgendetwas mit "Profile" oder "Member" im Namen.

Oder aber Du suchst z.B. auf Codeplex nach ein paar Webparts, welche solche Funktionen zukünftig für Dich übernehmen.

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 13:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe jetzt die ganze Webanwendung gelöscht und nochmal von vorn begonnen.

Und jetzt funktioniert wieder alles. Der User für ASp.NET und AppPool sind die selben. Benutzer wieder über die ASP.Net Kof. der DB hinzugefügt. in der CA der Webanwendung hinzugefügt und alles läuft... :-/ Keine Ahnung woran das jetzt lag.

Ich werde jetzt noch eine asp.net Seite erstellen die ich der Wenanwendung hinzufüge in der ich dann alle Benutzer der DB verwalten kann.

Ich danke Dir nochmals für Deine Hilfe. Hoffentlich funktiniert das jetzt länger, ansonsten werd ich Dich wohl nochmal belästigen müssen :-)

mfg HuLa

Ohne Rang
77 Beiträge
HuLa Als Antwort am 9 Dez. 2009 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Eine Frage hab ich da noch... :-)

Wenn die Authentifizierung über die login.apx funktioniert, wird der User ja auf die default.aspx weitergeleitet.

Jetzt möchte ich aber das der User auf eine andere Seite der Webanwendung weitergeleitet wird (z.B. /test/defualt.aspx).

Wie stell ich das jetzt an?

Ich hab in der web.config der Webanwendung unter <authentication> die Möglichkeit eine returnUrl anzugeben. Aber leider funktioniert das nicht.

 

mfg HuLa

Ohne Rang
183 Beiträge
Dominik Kovacic-Voß Als Antwort am 9 Dez. 2009 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

also ich meine, dass dies nicht geht aufgrund des darunterliegenden Mechanismus

wenn Du eine Seite auf Deinem SharePoint anforderst, dann wird geprüft, ob Du die Berechtigung dazu hast. Wenn nicht, wirst Du erst dann auf die Login.aspx weitergeleitet. Aus diesem Grund ist dann auch in der URL der Link zu der Seite drin, welche Du ursprünglich als erstes angefordert hast. Wenn Deine Authentifizierung erfolgreich war, wirst Du dann auf die Seite weitergeleitet, welche in der URL steht.

Allerdings lässt sich mittels JavaScript/JScript Manipulationen an den Seiten vornehmen. Dazu musst Du einen Code in die Login.aspx einbauen, welcher die URL manipuliert. Ich habe davon irgendwo gelesen gehabt, in meinen Bookmarks aber nicht gespeichert. Ich meine auch, im Forum hier gab es das Thema schon mal. Entweder suchen/googlen oder neuen Thread starten :)

Ohne Rang
77 Beiträge
HuLa Als Antwort am 10 Dez. 2009 08:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke

ich hab jetzt einfach den pfad hinten dran gehängt.

Dat funktioniert erstmal. Nicht unbedingt schön aber fürs erste reichts.

Danke nochmal für Deine Hilfe.

 

mfg HuLa