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.




Infopath und Webservices

Unbeantwortet Dieser Beitrag hat 14 Antworten

Ohne Rang
186 Beiträge
Benjamin Aicheler erstellt 1 März 2011 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich möchte gerne per Sharepoint mit Daten in einer SQL Datenbank verwalten. Aufgrund der etwas komplizierten Berechtigungen, möchte ich das mit Infopath machen. Nach einiger Nachforschung scheint das in Browserformularen aber nicht direkt zu gehen, und es werden Webservices empfohlen.

Also WCF Service erstellt, funktioniert. Dann habe ich ein Formular erstellt, funktioniert auch. Das Formular habe ich in der Zentraladministration hochgeladen, denn ich möchte ja nichts in einer Formularbibliothek speichern und somit auf diese Verzichten.

Dementsprechend kann ich nun das Formular aufrufen per http://sharepoint/_layouts/FormServer.aspx?XsnLocation=http://sharepoint/FormServerTemplates/myform.xsn&Source=http://sharepoint&DefaultItemOpen=1

Aber hier beginnen dann auch meine Fragen...

1. Dieses Formular kann so jeder Benutzer aufrufen, der auf irgend eine Website darf, richtig? _layouts ist ja "von überall erreichbar". Berechtigungen auf solche Formulare (im Gegensatz zur Formularbibliothek) gibt es nicht?

2. Der WCF Service erlaubt in der (sehr mageren, von Visual Studio erstellten) Standardkonfiguration ja anonymen Zugriff, auf dem Sharepoint ist der ebenfalls erlaubt. D.h. jeder Mensch, der irgendwie an die Url kommt, kann das Formular verwenden, richtig?

3. Ich habe nun überlegt in Infopath in einem readonly Feld mit Vorbelegung username() diesen an den Service mitzugeben. Der Service guckt dann was der Benutzer darf. Wäre das sicher/sinnvoll/manipulierbar? Da der Port gesperrt ist kann der Service sowieso nicht direkt von aussen aufgerufen werden.

4. Alternativ? Das Formular in einer Formularbibliothek veröffentlichen und im Sharepoint berechtigungen vergeben? Punkt 3 wäre hier aber zusätzlich nötig, da der Benutzername im SQL vorkommt. Zumindest könnte nichtmehr jeder das Formular aufrufen.

5. Oder den Service auf Windows Anmeldung umstellen? Wie es scheint geben die Forms-Services ja den angemeldeten Benutzer mit. Dann könnte ich den Benutzernamen auch darüber auselsen, und müsste ihn nicht mit dem Formular übertragen.

Mit 5. hab ich heute einiges an Zeit verbracht, und folgende web.config zusammengebastelt. Vielleicht kann da mal wer drüberschauen.

<?xml version="1.0"?>

<configuration>

<system.web>

<compilation debug="true" targetFramework="4.0"></compilation>

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

</system.web>

<system.serviceModel>

<behaviors>

<serviceBehaviors>

<behavior>

<serviceMetadata httpGetEnabled="true"/>

<serviceDebug includeExceptionDetailInFaults="false"/>

</behavior>

</serviceBehaviors>

</behaviors>

<bindings>

<basicHttpBinding>

<binding>

<security mode="TransportCredentialOnly">

<transport clientCredentialType="Windows" />

</security>

</binding>

</basicHttpBinding>

<wsHttpBinding>

<binding>

<security mode="Transport">

<transport clientCredentialType="Windows" />

</security>

</binding>

</wsHttpBinding>

</bindings>

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>

</system.serviceModel>

<system.webServer>

<modules runAllManagedModulesForAllRequests="true"></modules>

</system.webServer>

</configuration>

 

Viele Grüße

Benjamin

Alle Antworten

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 00:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo erst mal!

Hm. Ich würde an deiner Stelle noch ein wenig Zeit in die Planung deiner Lösung stecken.

Du willst die CRUD Operations auf deiner DB mittels SharePoint ablösen und willst dazu InfoPath Forms nutzen, bin ich da richtig? Sprich du willst die Daten weiterhin in SQL speichern, aber neu, edit, delete soll über SharePoint und InfoPath laufen? Oder willst du Daten in SharePoint Listen verwalten und etwaige Zusatz Spalten aus SQL Abfragen?

InfoPath mittels FormServer so wie deine Url es andeutet ist dazu gedacht Daten in einem netten Formular zu visualisieren und diese dann hauptsächlich in SharePoint Listen zu speichern. 

Für deinen Anwendungsfall wäre vielleicht BCS eine Lösung, sprich ein External ContentType und solltest du wirklich reine custom Anforderungen haben würde ich eine _layouts Page oder ein Silverlight WebPart schreiben um deine UseCases abzubilden. Dann hast du das FrontEnd in SharePoint aber das Backend trotzdem noch in deiner SQL Datenbank.

 

hth

thomy

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 08:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Thomas,

vielen Dank für deine Anregungen. Grundlegend ist es wie du schreibst. Ich möchte Daten in einer SQL DB mit Infopath Forms "verwalten". Front End muss der Sharepoint sein. Es spräche zwar nichts gegen Sharepoint Listen für die Daten, aber da stoße ich immerwieder auf Probleme. Ich habe mir dazu schon einiges an Gedanken gemacht, und natürlich auch über BCS. Infopath ist ebenfalls kein muss, es schien mir nur sehr praktisch da ich mit 3 Klicks eine Oberfläche habe, und per Webservice das SQL selber schreiben kann, und damit jedem genau anzeigen kann was er sehen soll.

Das Folgende findet in x verschiedenen Websites (Sprachen) statt, es soll aber natürlich keine getrennten Listen/Tabellen geben.

Wir haben zunächst anonyme User. Diese anonymen legen einen Datensatz in Liste A/Tabelle 1, wo auch immer, an (registrieren sich).

Dann sind sie nicht mehr anonym (Registrierung wird manuell geprüft und ggf. Benutzer angelegt), und legen einen weiteren Datensatz in Liste B/Tabelle 2 an.

Ab dem Zeitpunkt des "nicht mehr anonym seins" soll jeder seine 2 Datensätze anzeigen und ändern können. Fast alle Benutzer dürfen nur ihre Datensätze sehen/bearbeiten.

 

Gruß

Benjamin

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 08:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Noch eine Frage zum Thema Webservice. Ich kann sowas doch auch in den Sharepoint Integrieren und habe Zugriff auf SPContext, und damit den Benutzer, oder? Leider geben nämlich die Forms Services nur den AppPool Benutzer mit.

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Natürlich. Dazu musst du das WebService in den SharePoint deployen damit es unter ~/_vti_bin/ erreichbar ist. Dann läuft das ganze im SharePoint. Ich frag mich nur wie du deinen "anonymen" Eintrag später dann dem Benutzer zuordnen willst? Auch über Code oder?

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 11:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der anonyme Eintrag entspricht ja der registrierung. Dabei darf er seinen Benutzernamen selbst wählen. Der steht dann halt nicht als erstellt von drin, sondern in einer anderen Spalte.

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 11:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Planst du FBA? Weil du schreibst "Benutzernamen selbst wählen"? Oder muss er seinen samAccountName da angeben? 

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 11:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es handelt sich um den samAccountName... aber man weiss ja nie. Müsste ich da irgendwas beachten?

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 11:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Würde dir hier zum PeoplePicker raten! Vorallem dann wenn du vielleicht andenkst, das ein Kollege für einen anderen das Formular ausfüllt ist die Suche nach Vorname Nachme doch einfacher als den samAccountName einzugeben. Plus pass mit dem Format auf, auf den Domain Part nicht vergessen!

hth

thomy

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 12:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Aber der Account existiert ja noch nicht wenn das erste Formular ausgefüllt wird.

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 12:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

du willst dem benutzer das format des samaccount name überlassen? wie kommt er überhaupt in den sharepoint ohne sich vorher authentifziert zu haben?

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 12:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja. Anonymer zugriff auf den Sharepoint wird erlaubt sein. Es ist eine Internet Seite.

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 12:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

1.) hast du die anonyme lizenz für sharepoint bereits? kosten?

2.) wenn du das ganze ins internet stellen willst, warum nimmst du nicht FBA? Warum AD Authentifizierung? Was gibt es da für Gründe?

 

hth

thomy

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 3 März 2011 13:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich kenne mich mit Lizenzen nicht aus, unsere Systemtechnik wird das schon richtig machen wenn dann mal irgendwas feststeht. Das sind ja bisher nur alles Versuche von mir welche Möglichkeiten es gibt. Du meinst es lohnt sich nicht, nur damit man sich dann registrieren kann, anonyme Benutzer zu erlauben?

Mit FBA haben wir vor einiger Zeit beim Testen schwierigkeiten gehabt mit der Client Integration, das war aber noch Sharepoint 2007. Hat sich da seither was geändert?

Ohne Rang
24 Beiträge
Thomas Goelles Als Antwort am 3 März 2011 13:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nun ja, ich würd mal Anfragen wegen der Lizenz bevor du irgendwas weiter machst .. -> http://goo.gl/vQSuM scroll etwas runter dann siehst du von wie viel Tausend Euro wir sprechen. Ihr braucht die SharePoint 2010 Internet Sites Enterprise Lizenz wenn du InfoPath im WWW anonym publishen willst so weit ich weiß.

Und wenn dem so ist, dass euch diese Kosten nicht abschrecken, dann würde ich das ganze mit Nintex Enterprise machen und den Account Provisioning Tools die Nintex mitbringt. 

Mit Client Integration meinst du Office? Also wir haben unser Customer Portal über FBA seit 2007 und nicht wirklich Probleme.

Aber check mal die Lizenz ab, dann weißt du mehr und kannst dein Design danach ausrichten.

hth

thomy