Sumatra DS WebClient

Dit is een voorbeeldpagina die laat zien hoe de Sumatra DS WebClient gebruikt kan worden.

Wat is de Sumatra DS WebClient?

De Sumatra DS WebClient is een applicatie welke wordt aangeboden aan gebruikers via een webserver. Hierdoor kunnen gebruikers Sumatra-overzichten opvragen, zonder dat extra software nodig is op het werkstation. Ook kunnen met behulp van de Sumatra DS WebClient Sumatra-overzichten worden geintegreerd in andere webapplicaties.

Werking

De Sumatra DS WebClient (althans, dit voorbeeld) wordt geinstalleerd met behulp van de Sumatra DS Setup. De setup creëert een webapplicatie 'Sumatra_DS_WebClient_Sample' op de lokale webserver met als rootdirectory 'C:\Program Files\Sumatra\Sumatra DS\WebClient Sample' (waarbij c:\Program Files\Sumatra\Sumatra DS\ de standaardlocatie is, deze kan afwijken). Deze directory bevat de volgende bestanden:

Default.aspx

Met behulp van onderstaand formulier verzamelen we informatie om in te loggen op de Sumatra Server. Sommige velden kunnen leeggelaten, de consequentie hiervan is in onderstaand formulier te zien: 

Parameter Omschrijving Indien leeg:
Server : naam/IP-adres van de Sumatraserver Is verplicht
User : Gebruikersnaam Is verplicht (uitzondering bij Windows Authentication, zie web.config)
Password : Wachtwoord Is verplicht (uitzondering bij Windows Authentication, zie web.config)
Database : naam van de Sumatradatabase Gebruiker kan kiezen uit alle databases waar de gebruiker rechten op heeft
Module : Modulenaam uit dat-file Gebruiker kan kiezen uit alle modules waar de gebruiker rechten op heeft
Constraint : Extra constraint (bijv: "debnr='10'") Er wordt geen constraint toegepast

       

Als op Start wordt geklikt, wordt de volgende procedure uitgevoerd:

Sub SubmitForm(ByVal Source As Object, ByVal e As EventArgs)
     'Eerst plaatsen we de inhoud van de invoervelden in Sessievariabelen
     'Deze kunnen we later in de sessie gebruiken
     Session("Server") = TextBoxServer.Text
     Session("Database") = TextBoxDatabase.Text
     Session("User") = TextBoxUser.Text
     Session("Password") = TextBoxPassword.Text
     Session("Module") = TextBoxModule.Text
     Session("Constraint") = TextBoxConstraint.Text
     'Hierna sturen we de gebruiker door naar het ASHX-bestand
     'Welke zich in dezelfde directory bevindt
     Response.Redirect("SampleClient.ashx")
End Sub

SampleClient.ashx

Met behulp van de pagina SampleClient.ashx wordt met behulp van de verzamelde gegevens de Sumatra DS WebClient daadwerkelijk gestart. De volgende procedure wordt uitgevoerd bij het openen van de pagina:

<%@ WebHandler Language="VB" Class="WebClientDemo"%>

Imports System.Web
Imports System.Web.SessionState

Public Class WebClientDemo
     Inherits SumatraDS.WebClient
     Implements IReadOnlySessionState

     Protected Overrides Sub OnSetup(ByVal props As SumatraDS.WebClientProperties, ByVal context As HttpContext)

          props.Server = context.Session("Server"

          ' Als de Sessievariable 'User' leeggelaten is, dan 
          ' vullen we de WebClientProperties 'User' en 'Password' niet 
          ' Er wordt dan gebruik gemaakt van Windows Authentication 
          ' Mits in de web.config Impersonate op True staat, en 
          ' Anonymous Access van de webapplicatie is uitgezet
 

          If context.Session("User") <> "" Then 
              props.User = context.Session("User"
              props.Password = context.Session("Password"
          End If 

          props.Database = context.Session("Database"
          props.Module = context.Session("Module"
          props.Constraint = context.Session("Constraint")

     End Sub
End Class

 

In dit voorbeeld zijn de gegevens eerst verzameld in een formulier. Het is echter mogelijk om inloggegevens direct in een ashx-file te plaatsen, zo kun je Sumatra-overzichten integreren in bestaande (web-)applicaties. Een ASHX-file kan er dan als volgt uitzien:

<%@ WebHandler Language="VB" Class="WebClientDemo"%>

Imports System.Web
Imports System.Web.SessionState

Public Class WebClientDemo
     Inherits SumatraDS.WebClient
     Implements IReadOnlySessionState

     Protected Overrides Sub OnSetup(ByVal props As SumatraDS.WebClientProperties, ByVal context As HttpContext)
          props.Server = "Servernaam"
          props.User = "Gebruiker"
          props.Password = "Wachtwoord"
          props.Database = "100"
          props.Module = "Debiteuren"
     End Sub
End Class

 

Als deze pagina wordt bezocht, wordt er verbinding gemaakt met de Sumatraserver "Servernaam" via de gebruiker "Gebruiker", wachtwoord "Wachtwoord". De module "Debiteuren" wordt dan getoond, met gegevens uit database 100. De Database en Module kunnen eventueel nog via de URL worden doorgegeven. De syntax van de URL luidt dan: sampleclient.ashx?DSdatabase=102&DSmodule=Debiteuren.

Web.config

Een web.config-bestand wordt gebruikt om een webapplicatie te configureren. Voor de Sumatra DS WebClient is maar één instelling van belang: Als ervoor gekozen wordt om niet in te loggen op de Sumatra DS WebClient met Sumatra-authentication maar met Windows Authentication, dan dienen we dit in de web.config aan te geven.

De inhoud van de web.config bij dit voorbeeld ziet er als volgt uit:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <identity impersonate="false"/>
    </system.web>
</configuration>

 

De eigenschap impersonate van de instelling identity is false. Dit wil zeggen dat de webapplicatie niet de indentiteit aanneemt van de ingelogde gebruiker. Als er gebruik gemaakt dient te worden van Windows Authentication, dat wordt deze eigenschap op true gezet. Ook dient Anonymous Access op het tabblad Security in de eigenschappen van de webapplicatie in de IIS uit te worden gezet.

Beveiliging

De beveiliging van uw website is uiteraard belangrijk. Zorg er daarom voor dat u uw server op de juiste manier configureert en dat de meest recente hotfixes geïnstalleerd zijn.
Een aantal zaken waar wij u op willen wijzen zijn:

Wanneer is een viewdefinitie geschikt voor de Sumatra DS WebClient?

In principe kunnen alle beschikbare componenten van Sumatra DS Viewdefinities worden gebruikt in de Sumatra DS WebClient. Wel dient rekening gehouden te worden dat de Sumatra DS WebClient wordt aangeboden via een webserver en webbrowser: Grote hoeveelheden data (bijvoorbeeld tabellen die honderden regels of meer tonen) dienen vermeden te worden!

Er is een object wat zich iets anders gedraagd: De Title component. Deze heeft in de Sumatra DS WebClient geen mogelijkheid om het onderliggen object te vergroten tot het volledige scherm.

Systeem vereisten

Ondersteunde server operating systemen (op de webserver):

Ondersteunde web browsers voor gebruik met Sumatra DS WebClient:

Definities gebruikte termen

 

ASPX Active Server Pages v2.0. Web pagina's met programma code die door de IIS server wordt uitgevoerd. Het resultaat verschijnt als HTML in de browser.
ASHX Active Server Pages v2.0. Web pagina's met programma code die door de IIS server wordt uitgevoerd. In deze bestanden is geen      
HTTPS HTTP verbinding waarbij de data versleuteld wordt. Een zgn. certificaat is hiervoor vereist.
IIS Internet Information Server. De webserver welke zich bevindt op de servers van de Windowsfamilie.
Module Een opzichzelfstaand onderdeel van de Sumatra DS view-definitie, met daarin bepaalde overzichten. Bijvoorbeeld Debiteuren/Crediteuren. Deze zijn te onderhouden via de Sumatra DS Builder.

Copyright © 2008 Sumatra Software b.v.