Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von roYaL-TS
Thema: Fehler bei kopieren eines Streams zum Erstellen von tar.bz2-Archiv mit SharpZipLib
Am im Forum: Rund um die Programmierung

Hi,

danke für deine Antwort. Archive ist eine von mir generierte Klasse, in der ich die jeweiligen Archiv-Bytes und Infos gebündelt habe. Ich hätte dazu sagen sollen, dass ich im Nachgang bzw. bevor das tatsächliche tar.bz2-Archiv geschrieben wird, ein zusätzliches File mit Meta-Informationen hinzufüge.

Das Problem an TarArchive ist, dass dies tatsächliche Files benötigt und nicht mit Streams arbeitet. Die Dateien stehen mir aber nicht nur als Base64-String zur Verfügung (aus einer DB gelesen). Das Zwischenspeichern auf der Platte ist hier leider keine Option.

Mich wundert dennoch, dass das jeweils erste TarEntry beim kopieren des Streams (ob über die Util der Lib oder über Stream.CopyTo) nicht vollständig übertragen wird.

Thema: Fehler bei kopieren eines Streams zum Erstellen von tar.bz2-Archiv mit SharpZipLib
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich versuche aktuell ein tar.bz2 Archiv zu erstellen, doch bereits auf dem Weg dort hin werden die Dateien zerschnitten. Ich habe hier PDF-Dateien und JPGs, die mir im Byte-Array zur Verfügung stehen. Ich möchte diese der Reihe nach einem TAR-File hinzufügen und ab einer Größe von 2GB ein weiteres Erstellen.

Das Problem: Wenn das jeweils letzte Dokument in den tarStream kopiert wird, fehlen hier einige Bytes, wodurch das PDF nicht mehr zu öffnen ist. Im jeweiligen inputMemoryStream ist dies noch vollständig vorhanden. Auch wenn ich es via CopyTo in einen anderen MemoryStream schiebe bleibt dies ganz. Hat jemand hier bereits Erfahrungen mit der Lib gesammelt bzw. könnte mir eine andere empfehlen, mit der ich das entsprechend erreichen kann?

Folgenden Quellcode habe ich:


Archive archive = new Archive { Items = 0 };
TarOutputStream tarStream = new TarOutputStream(new MemoryStream());

for (int i = 0; i < Fileitems.Count; i++)
{
     Fileitems item = Fileitems[i];
     MemoryStream inputMemoryStream = new MemoryStream(ByteDocument);
     long nextSize = i != Fileitems.Count - 1 ? Fileitems[i].FileSize : 0;

     TarHeader header = new TarHeader
     {
          Name = item.Filename
     };
     TarEntry newZipEntry = new TarEntry(header)
     {
          Name = item.Filename,
          Size = inputMemoryStream.Length
     };

      if (tarStream.Length + nextSize > zipMaxSize)
      {
            archive.ZipStream = tarStream;
            archives.Add(archive);
            archive = new Archive { Items = 0 };
            tarStream = new TarOutputStream(new MemoryStream());
      }
                        
      tarStream.PutNextEntry(newZipEntry);
      inputMemoryStream.Position = 0;                        
      inputMemoryStream.CopyTo(tarStream);      <<< Hier schlägt es fehl
      tarStream.CloseEntry();
      inputMemoryStream.Dispose();
      archive.Items++;
}
archive.ZipStream = tarStream;
archives.Add(archive);


Das komprimieren der Archive folgt in einem anderen Arbeitsschritt.

Thema: Code Maps für mehrere Solutions zusammenführen
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich würde gern über Visual Studio eine vollständige Code-Map unserer Sourcen erstellen. Wir haben einige Projekte die in mehreren Solutions verwendet werden. Um entsprechend sichtbar machen zu können, wo diese genutzt wird und welche Solution bei einem Update entsprechend mitgeprüft bzw. aktualisiert werden muss, bräuchte ich eine Möglichkeit dies irgendwie zu visualisieren.

Mir kam hier die Code Map in den Sinn, leider habe ich hier bisher keine Möglichkeit gefunden dies auf mehreren Solutions zu verknüpfen.

Gibt es hier evtl. ein weitere Tool was mir dies bereitstellen kann bzw. gibt es eine Möglichkeit dies mit Code Maps darzustellen?


Grüße
roYaL

Thema: Verbindung einer Azure Function App via Hybrid Connection Manager auf eine On-Premise SQL-DB
Am im Forum: Datentechnologien

Hi,

danke für die schnelle Antwort.

Sowohl TCP/IP (für die Hybrid-Verbindung) als auch Named Pipes sind aktiviert.

Der Fehler konnte aber behoben werden. Statt dem tatsächlichen Servernamen oder wie du vorgeschlagen hast, die IP, ist hier der Name und Port der Hybridverbindung notwendig.

Viele Grüße

Thema: Verbindung einer Azure Function App via Hybrid Connection Manager auf eine On-Premise SQL-DB
Am im Forum: Datentechnologien

Hallo zusammen,

ich habe eine Azure Function App angelegt, welche auf eine On-Premise DB auf einem Server zugreifen soll. Um die grundsätzliche Erreichbarkeit zu gewährleisten, habe ich für die Function App eine Hybrid-Connection erstellung diese auf dem Server angebunden. Diese wird mir auch entsprechend als Verbunden angezeigt.

Ich habe nun in den Anwendungseinstellungen der App den Connectionstring hinzugefügt. Leider läuft dieser in einen Fehler

Fehler
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Ich vermute, dass der Connecitonstring entsprechen nicht korrekt ist. Leider finde ich hierfür aber auch keine geeigneten Examples im Netz. Ich habe diesen grundsätzlich klassisch aus der Appconfig übernommen:
Data Source=[I]servername[/I];Initial Catalog=[I]db[/I];Integrated Security=False;User=[I]user[/I];Password=[I]password[/I];MultipleActiveResultSets=true;Application Name=[I]app[/I]"

Ich habe als Datasource nun den tatsächlichen Servernamen angegeben, muss hier ggf. der Name der Hybridverbindung rein? Ich komme an dieser Stelle leider nicht weiter.

Vielen Dank schon mal für die Hilfe

Thema: Eigenen SQL Type an Tabelle joinen und nutzen, wenn nicht NULL
Am im Forum: Datentechnologien

Für eine Übergabetabelle konnte ich das Problem lösen, ich werde morgen noch prüfen ob dies auch für weitere Übergabetabellen (in meinem Fall sind es 25) funktioniert.


Die Lösung ist:


...
WHERE EXISTS (SELECT [Id] FROM @datatable1 WHERE [Id] = T.[Id])
 OR NOT EXISTS(SELECT [Id] FROM @datatable1)	
...

Thema: Eigenen SQL Type an Tabelle joinen und nutzen, wenn nicht NULL
Am im Forum: Datentechnologien

Danke für die schnelle Antwort, das wäre natürlich die einfachste Variante, das sollte aber dynamisch vom SQL-Server geprüft werden.

Ich übergebe aus dem C#-Code immer die DataTable nach hinten durch, diese kann 0-n Werte enthalten. Mir ist aber nicht bekannt, dass ich um einen JOIN ein CASE packen kann, daher müsste ich ja einen anderen Vergleichsparameter irgendwo benutzen. Nur ist mir dieser nicht bekannt.

Viele Grüße
roYaL-TS

Thema: Eigenen SQL Type an Tabelle joinen und nutzen, wenn nicht NULL
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL-Server 2012

Hallo zusammen,

ich reiche über das EF6 DataTables an eine SQL Function durch. Diese werden auf dem SQL-Server als Type (eine Column, uniqueidentifier) entgegengenommen.

In meiner Query möchte ich diese nun JOINEN um entsprechend zu filtern, wenn Daten übertragen werden. Der Filter soll nicht zwingend sein, sodass die Tabelle entsprechend auch keine Werte enthalten kann.

Bisher hatte aber kein genutzt JOIN erfolg. Wenn die Tabelle Daten enthält wird korrekt gefiltert, wenn sie leer ist bekomme ich hingegen keinen Wert zurück.

Ich habe es auch über ein CASE im WHERE probiert, dies hat leider auch nicht zum gewünschten Ergebnis geführt. Hat da evtl. jemand eine Idee wie das umzusetzen wäre?

Viele Grüße
roYaL-TS

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Nach kurzer Suche über google konnte ich den Fehler finden. Der erweiterte Schutz in den erweiterten Einstellungen der Windows-Auth muss deaktiviert werden. Danach ging die Verbindung reibungslos.


Trotzdem danke für die Hilfe, das Thema kann damit geschlossen werden.

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Der WCF Service ist bereit seit längeren Bestandteil der Umgebung und intern über http erreichbar. Dieser soll nun nach außen über https erreichbar gemacht werden und durch die Kerberos-Authentifizierung gesichert werden. Daher wird hier WCF genutzt.

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Nach einem IIS-Reset erhalte ich nun den Anwendungsfehler

Fehler
Die für IIS konfigurierten erweiterten Schutzeinstellungen stimmen nicht mit den für den Transport konfigurierten Einstellungen überein. Die ExtendedProtectionPolicy.PolicyEnforcement-Werte stimmen nicht überein. IIS hat den Wert WhenSupported, und der WCF-Transport hat den Wert Never.

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Hallo,

das senden der Tickets ist aktiviert. Auch habe ich auf dem Server für alle Zonen das Senden der Credentials aktiviert.

Von anderen Servern / Endgeräten funktioniert der Zugriff ebenfalls nicht. Andere Sites von dem Server werden normal angezeigt, diese verwenden allerdings kein Kerberos bzw. generell keine Windows-Auth.

Was mich verwundert, auf dem angehangenen Screenshot ist zu sehen, dass die Anmeldemethode unbekannt ist, wie kann das sein?

EDIT: Der Screenshot ist nicht gut zu erkennen, hier ein Link dazu: https://s21.postimg.org/yrr8wbp8n/401error.jpg

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Hallo,

ich verweden den IE10 auf dem Server und IE11 auf den Clients.

Thema: WCF-REST in IIS per SSO mit Kerberos führt zu 401.1 und 401.2
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich habe einen Webservice, welchen ich mit SSO über Kerberos ansteuern möchte. Leider klappt dies nicht so wie gewünscht.

Hier mein bisheriges Setup:
Ich habe mich grundsätzlich erstmal an diesen Guide gerichtet: Setting up Kerberos

Der AppPool-ausführende User hat SPNs für den Server und die Domain gesetzt bekommen.

Wenn ich nun eine Anfrage an den Webservice setze, so greift zum einen der SSO nicht und ich muss meine Credentials angeben. Dies wiederhole ich dann 4 mal ehe es zur Fehlermeldung 401 kommt.

In den IIS-Logs finde ich für den AppPool folgendes:

Zitat
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2016-10-24 11:27:34 10.11.0.121 GET /webservices/restservice.svc/projects/test|user/2016-06-01/2016-10-01/ - 8443 - 10.11.0.130 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/53.0.2785.143+Safari/537.36+OPR/40.0.2308.90 401 2 5 0
2016-10-24 11:27:52 10.11.0.121 GET /webservices/restservice.svc/projects/test|user/2016-06-01/2016-10-01/ - 8443 - 10.11.0.130 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/53.0.2785.143+Safari/537.36+OPR/40.0.2308.90 401 1 2148074245 124

Im Eventviewer habe ich leider keine Einträge hierzu gefunden.

Hat jemand eine Idee woran das liegen kann? Fehlen evtl. konfigurationen im AD? Wie erwähnt habe ich mich komplett an den oben erwähnten Guide gehalten (bis einschließlich Punkt 8).

Sollten weitere Infos benötigt werden die ich hier vergessen habe, kann ich die natürlich gern nachreichen. Ich ärgere mich nun seit über eine Woche mit diesem Problem rum und wäre über jede Art von konstruktiver Hilfe dankbar.

Gruß
roYaL-TS

Thema: Ladeanimation während des Bereitstellung eines Downloads
Am im Forum: Web-Technologien

Die Sache mit dem Popup klingt schon ziemlich sinnvoll. Ich denke ich werde es mal so angehen. Ich wollte eigentlich einen weiteren Input des Users vermeiden, aber der finale "klick" auf Download sollte wohl machbar sein.

Danke für die schnelle Hilfe

Thema: Ladeanimation während des Bereitstellung eines Downloads
Am im Forum: Web-Technologien

Hallo zusammen,

ich möchte über eine MVC Webseite einen Bericht abrufen und diesen zum Download bereitstellen.
Grundsätzlich ist dies auch schon soweit umgesetzt. Um dem User aber beim längeren Warten (der Reportserver ist ja nicht immer am laufen) eine optische Hilfe mit an die Hand zu geben, würde ich dort gern eine Ladeanimation implementieren.


Da ich nun allerdings keine Files über Ajax bereitstellen kann, fällt mir keine Möglichkeit ein dies zu realisieren.

Kennt jemand eine simple Möglichkeit um hier bis zur Bereitstellung des Downloads dies ohne Ajax einzublenden?

Gruß und Dank
roYaL

Thema: Wie transformiere ich mehrere TSQL-Rows zu einer Row mit mehreren Columns?
Am im Forum: Datentechnologien

Hi,

danke für die Antwort.

Ich nutze die DataToolsanbinung in Visual Studio um über die SSRS die Reports zu generieren.

Mir ist klar das ich die Datatables dort aufbauen kann, allerdings benötige ich eine View mit dem Result welche den Report (und weitere Komponenten) füllt.

Ich habe allerdings nun einen Ansatz gefunden der zu funktionieren scheint.

Und zwar setze ich eine temporäre Tabelle auf und lass eine Id hochzählen. Anschließend left joine ich auf die eigene Tabelle und dem festen Wert für die Id.


Gruß

roYaL-TS

Thema: Wie transformiere ich mehrere TSQL-Rows zu einer Row mit mehreren Columns?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MS-SQL Server 2012

Hallo zusammen,

ich benötige für einen Report die Transformation von Zeilen zu Spalten. Ich habe mir dazu bereits einige Beispiel im Internet angeschaut, allerdings Zielen die Meist darauf aus 2 Tabellen zu einer zu vereinen bzw. eine dieser Tabellen mit den Informationen anzureichern.


Kurz zu meiner Tabelle. Diese liefert mir folgende Spalten

Id | MaterialsTabId | MdmMaterialId | GlobalCode | Supplier | MaterialDescription | QuantityOld | QuantityNew | PricePerUnitOld | PricePerUnitNew | TotalOld | TotalNew

Definiert ist, das immer die ersten 10 Rows genommen werden, somit ergibt für mich eine fest definiertes (hier verkürztes) Select-Statement mit

SELECT Id1, MaterialsTabId1, MdmMaterialId1, ... Id2, MaterialsTabId2, MdmMaterialId2, .. Id3, MaterialsTabId3, MdmMaterialId3 ... FROM ....


Gibt es da einen Weg das zu lösen ohne für jede Spalte eigene pivot-Funktion schreiben zu müssen? Ist es außerdem möglich Leerzeilen (also für den Fall, dass es nur vier Results gibt) mit leeren Einträgen zu füllen, sodass der Report sich in der Struktur nicht verändert?

Ich hoffe es kam verständlich rüber was meine Problematik ist und jemand weiß einen Rat dafür.

Soweit schon mal einen Gruß und Dank
roYaL-TS

Thema: Wie das DataModel von der Partial View an den Controller weiterleiten
Am im Forum: Web-Technologien

Also könnte ich für z.B. die VerlosungsID ein Hidden-Feld anlegen und dies wird dann mit übergeben?

Thema: Wie das DataModel von der Partial View an den Controller weiterleiten
Am im Forum: Web-Technologien

Hi Coffeebean,

das hatte ich schon probiert. Da wurden aber auch nur die gewählten Items aus dem Multiselect übergeben. Die anderen Properties des Models waren null.

Gruß
roYaL-TS

Thema: Wie das DataModel von der Partial View an den Controller weiterleiten
Am im Forum: Web-Technologien

Hallo zusammen,

vorweg, ich habe bereits ein wenig Erfahrung mit MVC sammeln können, aber wohl noch nicht genug. Daher beschäftige ich mich nun mit Partial Views. Das Projekt ist in VS2013 Premium angelegt und nutzt MVC5 und EF6.

Kurze Problembeschreibung. Ich möchte ein Webseite zum Verwalten und Verlosen von Geräten erstellen.

Eine Funktion um sowohl Geräte als auch Verlosungen zu Erstellen und zu Bearbeiten ist bereits umgesetzt. Nun sollen die Geräte zu den Verlosungen hinzugefügt werden.


Hier meine Verlosungsklasse


public partial class Lottery
{
        public Lottery()
        {
        }
    
        public int Id { get; set; }
        public string Description { get; set; }
        public System.DateTime Start { get; set; }
        public System.DateTime End { get; set; }
        public string Title { get; set; }
        public bool Show_type { get; set; }
        public bool Show_producer { get; set; }
        public bool Show_description { get; set; }
        public bool Show_location { get; set; }
        public bool Show_performance { get; set; }
        public bool Closed { get; set; }
}

Hier meine Geräteklasse


public partial class Device
{
        public Device()
        {
        }
    
        public int Id { get; set; }
        public string Title { get; set; }
        public string Type { get; set; }
        public string Producer { get; set; }
        public string Description { get; set; }
        public string AdessoId { get; set; }
        public string Location { get; set; }
        public string Performance { get; set; }
        public System.DateTime EntryDate { get; set; }
        public bool SignedOut { get; set; }
}


Dazu habe ich folgende View erzeugt:

<div class="ContentArea">
    <select class="form-control" id="lotterySelect">
        <option selected="selected" value="-1"></option>
        @foreach(Lottery l in Model)
        {
            <option value="@l.Id">@l.Title</option>
        }
    </select>
    
    <div id="DeviceToLotteryContext">
        @Html.Partial("DeviceToLotteryContext", new adesso_Hobbythek.Models.LotteryData())
    </div>
</div>

Dazu folgende Partial View:

@model adesso_Hobbythek.Models.LotteryData

<div>

    @using (Html.BeginForm("DeviceToLotteryContext", "Admin",Model))
{
    if (Model.lottery != null)
    {
        <div>Titel:</div><div>@Model.lottery.Title</div>
        <div>Beschreibung:</div><div>@Model.lottery.Description</div>
        <div>Startdatum:</div><div>@Model.lottery.Start</div>
        <div>Enddatum:</div><div>@Model.lottery.End</div>
        <div>Geräte1:</div>
        <select name="AssignedDeviceIds" multiple="multiple" size="10" style="width:200px;">
        @if (Model.CurrentDevices != null)
        {
            foreach (DataProvider.Device d in Model.CurrentDevices)
            {
                <option value="@d.Id">@d.Title</option>
            }
        }
        </select>
        <div>Geräte2:</div>
        <select name="FreeDeviceIds" multiple="multiple" size="10" style="width:200px;">
        @if (Model.FreeDevices != null)
        {
            foreach (DataProvider.Device d in Model.FreeDevices)
            {
                <option value="@d.Id">@d.Title</option>
            }
        }
        </select>


        @Html.ActionLink("Hinzufügen", "DeviceToLotteryContextReturn", Model)
        

    }
}
</div>



Nun möchte ich der Funktion "DeviceToLotteryContextReturn" das Model mit übergeben nur wird dies leider nicht gesendet und er sucht vergeblich nach einem parameterlosen Konstruktor.

Jemand evtl. eine Idee woran das liegen könnte?

Gruß
roYaL

Thema: Ausblenden mehrerer tr-Elemente in einer Tabelle
Am im Forum: Web-Technologien

Hallo zusammen,

ich habe folgende Tabelle


<table class="table table-condensed table-striped" id="device-content">
            @foreach (var item in Model)
            {
                <tbody>

                    <tr class="visualContent">
                        <td>
                            <button type="button" class="btn btn-sm active noHighlight hideshowbutton">
                                <span class="glyphicon glyphicon-plus"></span>
                            </button>
                        </td>

                        <td>
                            <h5 class="headerFiveFont">Titel:</h5>
                            @Html.DisplayFor(modelItem => item.Title)
                        </td>
                        <td>
                            <h5 class="headerFiveFont">Typ:</h5>
                            @Html.DisplayFor(modelItem => item.Type)
                        </td>
                        <td>
                            <h5 class="headerFiveFont">Standort:</h5>
                            <p>
                                @Html.DisplayFor(modelItem => item.Location)
                            </p>
                        </td>
                        <td>
                            <h5 class="headerFiveFont">Optionen:</h5>
                            <button type="button" class="btn btn-primary active btn-xs noHighlight buttonWidth" onclick="{ window.location.href = '@Url.Action("EditDevice", "Admin", new { id = item.Id })'; }">
                                <span class="glyphicon glyphicon-edit"></span> Bearbeiten
                            </button>
                            <button type="button" class="btn btn-info active btn-xs noHighlight buttonWidth" onclick="{ window.location.href = '@Url.Action("Device", "Home", new { id = item.Id })'; }">
                                <span class="glyphicon glyphicon-search"></span> Details
                            </button>
                            <button type="button" class="btn btn-danger active btn-xs noHighlight buttonWidth" onclick="if (confirm('Bist du sicher, dass dieses Gerät gelöscht werden soll?')) { window.location.href='@Url.Action("DeleteDevice", "Admin", new { id = item.Id })' ; }">
                                <span class="glyphicon glyphicon-remove-circle"></span> Löschen
                            </button>
                        </td>
                    </tr>

                    <tr class="innerContent">
                        <th rowspan="5" colspan="4" class="normalFont">
                            <span class="headerFiveFont">Beschreibung:</span>
                            <p>
                                @Html.DisplayFor(modelItem => item.Description)
                            </p>
                            <br />
                            <span class="headerFiveFont">Leistung:</span>
                            <p>
                                @Html.DisplayFor(modelItem => item.Performance)
                            </p>
                        </th>
                    </tr>

                    <tr class="innerContent">
                        <td>
                            <span class="headerFiveFont">Hersteller:</span>
                            @Html.DisplayFor(modelItem => item.Producer)
                        </td>
                    </tr>

                    <tr class="innerContent">
                        <td>
                            <span class="headerFiveFont">InventarNr.:</span>
                            @Html.DisplayFor(modelItem => item.AdessoId)
                        </td>
                    </tr>

                    <tr class="innerContent">
                        <td>
                            <h5 class="headerFiveFont">Hobbythek:</h5>
                            @if (item.lottery.Count > 0)
                            {
                                @Html.ActionLink(item.lottery[0].Title, "Hobbythek", "Home", new { id = item.lottery[0].Id }, null);
                            }
                        </td>
                    </tr>

                    <tr class="innerContent">
                        <td>
                            <h5 class="headerFiveFont">Gewinner:</h5>
                            @if (item.Winner.Count > 0)
                            {
                                @Html.DisplayFor(modelItem => item.Winner[0].Firstname + " " + item.Winner[0].Lastname)
                            }
                            else
                            {
                                <span>N/A</span>
                            }
                        </td>
                    </tr>
                </tbody>
            }
        </table>

und möchte über den ersten Button mit der class 'hideshowbutton' alle tr's mit der Klasse 'innerContent' ausblenden.

Mein dazugehöriges jquery sieht so aus


$(function () {
        $('.hideshowbutton').click(function () {
            $(this).find('.innerContent').each(function () {
               
            
            $('tr:first', this).click(function () {
                $(this).siblings().toggle()
            })
            $('tr:gt(0)', this).hide()
            });
        });
    });

Leider tut es das nicht, da es über den tbody hinaus geht. Hat einer eine Idee, wie ich nur die Elemente in den jeweiligen tbody ausblenden kann?


Gruß und Dank
roYaLTS

Thema: Frage zur Verschlüsselung von Session-Attributen
Am im Forum: Web-Technologien

Da fällt mir noch eine Frage zu ein. Und zwar schreib ich die Anwendung für ein Unternehmen. Dieses nutzt für seine Webseiten eine SSL-Wildcard. Ist es den Mitarbeitern, die Zugriff auf dieses haben, anhand dessen eine Man-in-the-Middle Attacke auszuführen und den Inhalt einer Session zu decrypten?

Thema: Frage zur Verschlüsselung von Session-Attributen
Am im Forum: Web-Technologien

Ok danke für die schnelle Antwort. Ich werde mir die von dir angesprochenen Elemente mal genauer anschauen (jetzt weiß ich ja wonach ich suchen muss). Auch das ich da nicht so ganz auf dem Holzweg bin beruhigt mich soweit schon.


Gruß

roYaL

Thema: Frage zur Verschlüsselung von Session-Attributen
Am im Forum: Web-Technologien

Hallo zusammen,

ich habe eine Frage auf die ich leider keine direkte Antwort gefunden habe.

Und zwar geht es um folgenden Quelltext


using System;
using System.Collections.Generic;
using System.Linq;
using System.Transactions;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using DotNetOpenAuth.AspNet;
using Microsoft.Web.WebPages.OAuth;
using WebMatrix.WebData;
using OfficeHandler.Filters;
using OfficeHandler.Models;
using OfficeHandler.DataProvider;

namespace OfficeHandler.Controllers
{
    [Authorize]    
    public class AccountController : Controller
    {

        //
        // POST: /Account/Login

        [AllowAnonymous]
        [ActionName("Login")]
        //[ValidateAntiForgeryToken]
        public ActionResult Login(LoginModel model, string returnUrl)        
        {
            var provider = Membership.Providers["officeProvider"];
            if (!(model.Password == null && model.UserName == null))
            {
                if (ModelState.IsValid
                    && provider.ValidateUser(model.UserName, model.Password)
                    && this.ValidateUserAgainstDb(model))
                {
                    if (this.UserHasAuthority(model))
                    {
                        FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

                        // Do something                
                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return Redirect(returnUrl);
                        }
                        else
                        {
                            return RedirectToAction("Summary", "Home");
                        }
                    }
                    else 
                    {
                        return RedirectToAction("Denied", "Home");
                    }
                }
                return Redirect("Login?login=false");
            }
            // If we got this far, something failed, redisplay form
            //ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return View(model);
            // return Redirect("Login?login=false");
        }

        private bool UserHasAuthority(LoginModel model)
        {
            List<Web_GetEmployeeAuthority_Result> userAuthoritys;

            using (var db = new DbEntities())
            {
                userAuthoritys = db.Web_GetEmployeeAuthority(model.UserName).ToList();
                foreach (var e in userAuthoritys)
                {
                    Session[e.Beschreibung] = e.RollenID;
                }
            }

            if (null != userAuthoritys && userAuthoritys.Count > 0)
            {

                return true;
            }

            return false;
        }


        private bool ValidateUserAgainstDb(LoginModel model)
        {
            List<GetEmployeeInfoFromEmployeeData_Result> currentUser;
            using (var db = new DbEntities())
            {
                currentUser = db.GetEmployeeInfoFromEmployeeData(model.UserName).Where(k => k.LoginName == model.UserName).ToList();
            }
            
            if (null != currentUser && currentUser.Count > 0)
            {
                Session["Firstname"] = currentUser[0].Vorname;
                return true;
            }

            return false;
        }        

        //
        // POST: /Account/LogOff

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult LogOff()
        {
            FormsAuthentication.SignOut();            
            return RedirectToAction("Index", "Home");
        }

        private static string ErrorCodeToString(MembershipCreateStatus createStatus)
        {
            // See http://go.microsoft.com/fwlink/?LinkID=177550 for
            // a full list of status codes.
            switch (createStatus)
            {
                case MembershipCreateStatus.InvalidPassword:
                    return "Passwort fehlerhaft";                

                case MembershipCreateStatus.InvalidUserName:
                    return "Falscher Login";

                case MembershipCreateStatus.ProviderError:
                    return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";                

                default:
                    return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
            }
        }
    }
}


In meiner Datenbank habe ich verschiedene Rollen hinterlegt und schreibe nun in die Session den entsprechenden Rollennamen + die Id hinein. Mit Fiddler habe ich den Datenverkehr verfolgt und herausgefunden das die Daten, welche über eine SSL-Verbindung übermittelt werden, verschlüsselt sind.

Nun zu meiner Frage:

Welcher Teil übernimmt an dieser stelle die Encryption? Was für ein Algorithmus wird dafür verwendet und wie sicher ist der? Es wäre natürlich sehr unglücklich, wenn das ein bekannter Schwachpunkt ist und die Session einfach "geklaut" werden kann um die Rechte zu nutzen.

Und natürlich um auch generelle Schwachstellen auszumerzen: Gibt es einen sichereren Weg dafür bzw. eine elegantere Lösung für das hinterlegen der Nutzerrollen?


Grüße und Dank im Voraus

roYaL-TS

Thema: whenChanged liefert kein Resultset
Am im Forum: Rund um die Programmierung

Hallo,


ich schreibe gerade an einem Synchronisierungsprozess und wollte mir aus dem Active Directory die Mitarbeiter holen. Mit der Abfrage

 searcher.Filter = "(&(objectClass=user)(|company=test Company))";

bekomme ich ein entsprechendes Resultset zustande. Nun möchte ich aber nicht jedes mal alle Mitarbeiter abfragen (da es sich um über 1000 Stück handelt dauert dies ja seine Zeit), sondern nur die, bei denen sich in den letzten 2 Tagen etwas geändert hat. Nun habe ich mit dem whenChanged-Attribut eine neue Query zusammengestellt

searcher.Filter = "(&(objectClass=user)(|company=test Company)(whenChanged ≥20140527240000.0Z))";

doch diese Abfrage scheint er komplett zu überspringen und liefert mir jedesmal ein leeres Resultset.

Ich bin ein bisschen am verzweifeln und das Internet bietet mir leider auch keinen weiteren Hinweis... Hat evtl. jemand einen Lösungsansatz?

Gruß
roYaL

Thema: WCF TestClient meldet Keine Metadatenverfügbar
Am im Forum: Netzwerktechnologien

Hallo Leute,

ich bin ein wenig am Verwezifeln. Ich habe bereits einige Foren durchforstet und deren Hinweise auch versucht umzusetzen, allerdings scheitert es ein aufs andere mal und ich komme momentan nicht weiter.

Die Fehlermeldung die mir der WFC Testclient liefert ist

Fehler
Fehler: Aus http://xxx/service1.svc k”nnen keine Metadaten abgerufen werden. Wenn es sich hierbei um einen Windows (R) Communication Foundation-Dienst handelt, auf den Sie Zugriff haben, prfen Sie, dass die Metadatenver”ffentlichung fr die angegebene Adresse aktiviert ist. Informationen zum Aktivieren der Metadatenver”ffentlichung finden Sie in der MSDN-Dokumentation MSDN unter http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadatenaustauschfehler URI: http://xxx/service1.svc Metadaten enthalten einen Verweis, der nicht aufgel”st werden kann: "http://xxx/service1.svc". Die HTTP-Anforderung ist beim Clientauthentifizierungsschema "Anonymous" nicht autorisiert. Vom Server wurde der Authentifizierungsheader "Basic realm="xxx"" empfangen. Der Remoteserver hat einen Fehler zurckgegeben: (401) Nicht autorisiert.HTTP GET Error URI: http://xxx/service1.svc Fehler beim Downloaden von 'http://xxx/service1.svc'. Fehler bei der Anforderung mit HTTP-Status 401: Unauthorized.


Die Authentifizierung habe ich im IIS auf Anonym und Windows-Authentifizierung gestellt und die Metadaten habe ich, meines Wissens nach, auch richtig behandelt.

Hier meine Web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>    
    <add name="TestCon" connectionString="Data Source=xxx;Initial Catalog=Benefizortung; User ID=benefiz; Password=123test123" />    
  </connectionStrings>
  <system.serviceModel>
  <bindings>
      <wsHttpBinding>
        <binding name="wsHttpEndpointBinding">
          <security mode="Message" />
        </binding>
      </wsHttpBinding>
	  <basicHttpBinding>
          <binding maxReceivedMessageSize="1000000">
            <security mode="TransportCredentialOnly">
              <transport clientCredentialType="Basic" proxyCredentialType="None" realm="" />
              <message clientCredentialType="UserName" algorithmSuite="Default"  />
            </security>
          </binding>
        </basicHttpBinding>	  
    </bindings>    
    <services>
      <service behaviorConfiguration="BenefizWebservice.Service1Behavior"
        name="BenefizWebservice.Service1">
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
          contract="BenefizWebservice.IService1">
        </endpoint>
      </service>
    </services>	
    <behaviors>
      <serviceBehaviors> 
        <behavior name="MyServiceTypeBehaviors">
        <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
	<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

Ich weiß leider auch nicht weiter, kann mir Vorstellen das es etwas total banales ist und ich den Wald vor lauter Bäumen nicht sehe. Wenn jemand eine Idee hat, wäre ich für jede Hilfe dankbar.


Gruß
roYaL-TS

Thema: Falsche Übergabe von DateTime zum Datepicker
Am im Forum: GUI: WPF und XAML

Hallo Gü,

wunderbar hat direkt geklappt. Nochmals vielen Dank für die schnelle Hilfe :)

Gruß
royal

Thema: Falsche Übergabe von DateTime zum Datepicker
Am im Forum: GUI: WPF und XAML

Hallo Gü,

danke für die schnelle Antwort. Leider habe ich mit MVVM noch so gut wie keine Erfahrung. Wo gebe ich diese Info denn mit?

Gruß
royal

Thema: Falsche Übergabe von DateTime zum Datepicker
Am im Forum: GUI: WPF und XAML

Hallo,

für eine Datumsanzeige in einem Programm lese ich ein Datum aus der DB in mein Model und übergebe dies im DateTime Format der GUI.

Code aus der View:

<DatePicker Text="{Binding CurrentScheduling.Datum, UpdateSourceTrigger=PropertyChanged}" Height="25" HorizontalAlignment="Left" Margin="70,180,0,0" Name="Datum_Picker" VerticalAlignment="Top" Width="205" />

und das ViewModel

        private Scheduling currentScheduling;
        public Scheduling CurrentScheduling
        {
            get
            {                
                return this.currentScheduling;
            }
            set
            {
                if (this.currentScheduling != value)
                {
                    
                    this.currentScheduling = value;                    
                    if (null != this.PropertyChanged)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("CurrentScheduling"));
                    }
                }
            }
        }


Während des Debuggens werden mir die richtigen Daten angezeigt, also z.B. 5.1.2014 - 5. Januar 2014
Dieses Datum wird im DatePicker aber als 1.5.2014, also 1. Mai 2014 interpretiert. Für den 31.12.2013 kommt somit nur Unfug bei raus.

Gibt es eine Möglichkeit das 'bequem' richtig darzustellen?

Gruß
royal