Laden...

Forenbeiträge von Johnny Ingesamt 163 Beiträge

26.03.2012 - 17:17 Uhr

ServicePointManager.DefaultConnectionLimit = 10;

26.03.2012 - 15:13 Uhr

Ja, und das ist auch wirklich cool, aber du musst auch einsehen, dass so eine Möglichkeit jemanden(der vielleicht auch nicht so viel Erfahrung mit dem Thema MVC hat ) nicht sofort einfällt, weshalb er sich auch an dieses Forum wendet. Aber wie gesagt, das ist genau der Anstoß, den ich für meine 2. Frage gebraucht habe.

26.03.2012 - 14:50 Uhr

Hallo Abt. Auch wenn du das hier vielleicht nicht liest, trotzdem danke. Dieses Snippet ist für mich ziemlich hilfreich und löst einen Teil meiner Probleme. Leider bin ich nicht der Meinung, dass das hier absolute Grundlage ist. Oder bist du wirklich der Meinung, dass man auf so was kommen sollte, wenn man gerade mit den Themen anfängt? Mir persönlich ist von dir gezeigte Möglichkeit einfach nicht eingefallen, weshalb ich auch dieses Thema erstellt habe. Und verweise mich jetzt bitte nicht an " [Hinweis] Wie poste ich richtig?". Ich habe genug Tutorials/FAQ usw. gelesen. Leider wird man dadurch nicht sofort zum Experten, sonst bräuchte niemand dieses Forum.

26.03.2012 - 14:16 Uhr

Den AuthorizeAttribute verwende ich natürlich auch durchgehend. Damit kannst du aber nicht den Ablauf den Session überprüfen.

26.03.2012 - 14:06 Uhr

OK, all das habe ich bereits in meiner Applikation umgesetzt. Ich habe nur blöde Gefühl was falsch zu machen.
Was ist hier mit gemeint: "Du machst diese Session-Variable direkt vom Auth-Ticket abhängig"?

26.03.2012 - 13:58 Uhr

Wenn der User authentifiziert ist und der Session-Wert des ConnectionStrings nicht exisiert, erstellst Du ihn. Wie denn? An die UserID komme ich ja noch ran. aber was ist mit dem Passwort?

26.03.2012 - 13:49 Uhr

-> Grundlagen Websicherheit. Klar, aber was passiert, wenn der Auth-Cookie noch gültig ist aber die Session schon weg ist?

26.03.2012 - 13:42 Uhr

Ok, das mit dem Login habe ich verstanden. Ich hätte zwar gehofft, das man den Login irgendwie über den ObjectContext durchführen könnte. Du schlägst aber vor, dass ich das ganze über die ADO.NET Connection durchführe.

zu 2. Genau das spielt für mich eine Rolle. Mir ist schon klar, dass man den Context nicht in der Session speichern sollte(geht das überhaupt?). Das Speichern des ConnectionStrings in der Session sehe ich aber auch als problematisch, falls der FormsAuthentication-Timeout nicht gleich dem Session-Timeout ist.

26.03.2012 - 13:23 Uhr

Ok, ich versuche es noch mal. Ich in jedem mir bekannten EF-Tutorial wird in der app/web.config ein Systemuser hinterlegt. Danach wird z.B. durch den MembershipProvider der angemeldete User validiert. Was ich aber möchte, ist dass die 1.) UserID-/Passworteingaben aus meiner Login-Seite direkt an die DB mittels EF weitergeben werden und authentifiziert werden. Hier wäre mir Codesnippet ganz hilfreich (Login-Methode) und 2.) falls der Login erfolgreich war, wie verwende ich die Userverbindung für die folgenden DB-Aufrufe. Im Moment speichere ich den User-ConnectionString in der Session und übergebe diesen immer in den Konstruktor des Contextes. Hier wäre die Frage, ob das die richtige Vorgehensweise ist.

26.03.2012 - 13:05 Uhr

Bitte beschäftige Dich mit den Grundlagen des EF / von ADO.NET und les Dir meinen Beitrag, auch den im Link nochmals durch. Ich bin eigentlich recht fit in den Grundlagen von EF und ASP.NET. Ich weiß bloß nicht was die Best Practice in solchen Fällen ist. Und wie ich bereits geschrieben habe, gibt es leider keine Tutorials zu meinem Szenario. Deshalb frage ich hier nach einem Rat/Hinweis. Deinen Beitrag habe ich genau durchgelesen und habe auch schon geschrieben, dass die Verarbeitung des ConnesctionSrings genau so mache, wie du vorgeschlagen hast.

26.03.2012 - 12:41 Uhr

OK, was ich bisher habe ist folgendes: Der ConnectionString ist OHNE user/password in der web.config drin. Vor jedem DB-Aufruf wird mittels ConnectionStringBuilder ein userspezifischer ConnectionString dynamisch zusammengebaut und in den Konstruktor des Contextes übergeben. Das funktioniert ja auch so weit. Es bleiben trotzdem die Fragen:
-Mit welcher EntityFramework-Methode führe den Userlogin durch.
-Wo wird der User-ConnectionString abgelegt, so dass ich diesen immer für an den Context übergeben kann?

26.03.2012 - 12:22 Uhr

Ja, die Datenbank besteht schon seit Jahren, und alle User incl. Rechte sind bereits vorhanden, daher auch das Szenario. Wie authentifiziere ich den User mittels EntityFramework, sprich was muss in der Login-Methode stehen?

26.03.2012 - 12:05 Uhr

Hallo, ich bin gerade dabei eine Applikation unter Verwendung von ASP.NET MVC3 und EntityFramework umzusetzen. Folgende Anforderungen sind gegeben:

  • Der Anwender meldet sich mit seinen DB-Credentials und wird somit durch die DB authentifiziert.
  • Alle weiteren DB-Zugriffe sollen auch über die Verbindung des Anwenders durchgeführt werden.
    Sprich, es gibt keinen Systemuser.

Meine Frage ist nun, was die beste Vorgehensweise in so einem Szenario ist. Im Detail sind für mich folgende Punkte offen:

  • Wie authentifiziere ich den User mittels EntityFramework. Gibt es da eine Methode oder eine Vorgehensweise um das zu bewerkstelligen?
  • Wenn der User erfolgreich angemeldet ist, wie persistiere ich seine Verbindung, bzw. wie stelle ich sicher, dass alle folgenden DB-Aufrufe mit den Credentials des User durchgeführt werden.

Leider habe ich zu dem Thema kein einziges Tutorial/Beispiel gefunden. Vielleicht könntet ihr mir paar Ratschläge geben. Danke.

07.03.2012 - 12:03 Uhr

Habe jetzt deinen Code nicht analysiert. Ich verwende für Reset-Services immer eine Online-Vorlage. Einfach unter Onlinevorlagen nach "REST" suchen lassen. Damit funktioniert es ohne jeglichen Konfigurationsaufwandt.

24.02.2012 - 11:19 Uhr

@Johnny: Welche Webservice-Technologie hast du unter WCF genutzt? Hast du das alles noch mit SOAP realisiert oder mit REST? Kommen eventuell noch andere Technologien in Frage? JSON, lässt sich erstaunlich leicht auf beiden Seiten (Front-/Backend) verwenden.

21.02.2012 - 13:20 Uhr

Ja, ist sehr gut geeignet. Hab vor kurzem so ein Projekt abgeschlossen: Front-end = reines HTML, Server : Ajax aktivierte WCF-Services, Kommunikation:jQuery

06.04.2011 - 12:57 Uhr

Ein paar kleinere tricks könnten das Parsing nahezu unmöglich machen...

Wie denn? Kann mir nicht vorstellen, dass Airlines auf ihre Site Captchas einbauen würden...

21.01.2011 - 16:02 Uhr

Hallo, ich habe hier eine Factory-Methode die als Argument einen Typen empfängt und daraus eine Instanz von dem Typen erstellt:



        public static MeinInterface GetInstance(Type typ)
        {
            if (typ.GetInterface(typeof(MeinInterface).ToString()) == null)
            {
                throw new ArgumentException("Invalid hierarchy for type:" + typ);
            }

            //hier kommt der initialisierungscode


             //ende initialisierungscode
             return inactanceOfMeinInterface
        }


das ganze ist natürlich etwas unschön, da eigentlich jeder Typ übergeben werden kann.
Die frage ist nun ob ich den Typparameter einschränken kann, z.B. "where Typ is MeinInterface" oder so. Hat jeman einen Rat für mich?

17.01.2011 - 08:27 Uhr

Die Zeit von JAVA ist vorbei
Nicht wirklich lustig, aber lächerlich.

15.01.2010 - 14:29 Uhr

Und wenn ich einen Timer starte, "blockiert" er die Animation nicht so wie Thread.Sleep()?

Das wäre dann schonmal eine Lösung, ok.

Und dann noch eine letzte Frage: Dass die Animation verzögert die 100% erreicht, kann ich nicht umgehen?

Verzögere testweise den Workerthread nach der vollständigen Abarbeitung.

15.01.2010 - 14:24 Uhr

Blendest du die Progressbar nach der Verarbeitung wieder aus(Visible=false)?

edit: ok, du schließt die Form.
Bei Vista und Seven ist die Progressbar so animiert . Unter XP solltest du die 100% sehen.

30.06.2009 - 12:12 Uhr

und damit?:
datagridview1.DataSource = ds.Tables[0];

30.06.2009 - 11:00 Uhr

DataSet kann im DGV nicht angezeigt werden. Das kann nur Table oder DataView.

13.06.2009 - 21:19 Uhr

siehe Antwort vom jaensen

12.06.2009 - 14:11 Uhr

Ich schaffe es einfach nicht den 302-er zu bekommen...

12.06.2009 - 13:11 Uhr

Bekomme ich auch, mit Firebug. Wenn ich aber mit meinem Programm drauf gehe, bekomme ich den aus dem Startpost. Stelle ich den Anfrage-Header falsch zusammen?
Gebe ich eigentlich nur die mit.
"Accept", "/"
"Connection", "Keep-Alive"

12.06.2009 - 12:59 Uhr

Hallo,

ich versuche beliebige Dateien mit WebRequest zu laden...funktioniert auch ganz gut. Allerdings habe ich Probleme mit URL's, aus denen der Dateiname nicht zu erkennen ist, z.B:
http://www.computerbase.de/downloads...php/?url=26996
Beim Zugriff auf diese URL bekomme ich folgenden Header:
null=[HTTP/1.1 200 OK]
ETag=["f3c201-129d800-49ddc22c"]
Age=[906]
Date=[Fri, 12 Jun 2009 10:01:48 GMT]
Content-Length=[19519488]
Last-Modified=[Thu, 09 Apr 2009 09:38:52 GMT]
Accept-Ranges=[bytes]
Content-Type=[text/plain]
Connection=[close]
Server=[Apache/1.3.33 (Unix) PHP/5.0.3 mod_ssl/2.8.22 OpenSSL/0.9.7e]

Allerdings kriege ich keinen Hinweis auf den Dateinamen.

Die Frage ist nun: Woher weiss ein Browser, dass der Dateiname "php-5.2.9-2-win32-installer.msi" lautet.
Danke

30.01.2009 - 14:23 Uhr

Du kannst über die Tag-Eigenschaft einen Identifizierer(Index z.B.) mitgeben und beim Click dann eben auswerten.

14.10.2008 - 13:59 Uhr

Nun, genau so wi bei Java wird nur wenig Standardsoftware in .NET entwickelt. Dafür werden beide um so mehr im Enterprisebereich genutzt.

30.09.2008 - 11:17 Uhr

So, seit letzter Woche auch MCTS .NET mit 70-528. Man, bin ich stolz auf mich. War schon knackig, die Prüfung.

26.08.2008 - 11:39 Uhr

OK, dafür hat die Methode Load() eine Überladung für Streams. Sorry! [Erledigt]

26.08.2008 - 11:30 Uhr

Hallo,

ich möchte eine einen Stream aus einem HttpWebResponse einlesen. Inhalt des Streams ist eine XML-Datei, die ich momentan erst lokal speichern muss damit ich diese dann mit XmlDocument auswerten kann. Das Speichern ist aber nicht erwünscht. Optimal wäre es, wenn die Klasse XmlDocument eine Konstruktor mit Stream hätte, gibts aber nicht. Hat jemand eine Idee wie ich da am besten vogehen kann. Danke!
Hier Meine Methode.


           StreamReader answer;
            String link = "www.xxx.yyyde";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(link);
            req.Credentials = new NetworkCredential(textBox1.Text, textBox2.Text);
            // Setzen die Session-ID wieder in den Header
            req.Headers["Cookie"] = sessionId;


            try
            {
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                answer = new StreamReader(resp.GetResponseStream());
                File.WriteAllText(txtJobID.Text + ".xml", answer.ReadToEnd(), Encoding.UTF8);// hier wird gespeichert

                textBox3.AppendText("Export beendet: " + txtJobID.Text + Environment.NewLine);
            }
            catch (Exception ex)
            {
                textBox3.Text += ex.Message + Environment.NewLine;
            }

22.08.2008 - 09:09 Uhr

Die Teilnahme an diesem Kurs finde ich nicht so sinnvoll. Dauert zu lange und am Ende hast du immer noch nicht Vernünftiges. Wozu ich dir raten kann ist die Zertifizierung zum MCTS.NET. Du kannst dich selbstständig vorbereiten und die Prüfung abgeben (Das Buch kostet 70€ und die Prüfung 150€). Zumindest bei meinem Arbeitgeber müsstest du während des Vorstellungsgesprächs schon sehr viel falsch machen, um nicht eingestellt zu werden. Dann spielt es auch keine Rolle, ob du eine IT-Ausbildung hast oder nicht.

Edit: ok, um die Prüfing bestehen zu können gehört schon einiges dazu, aber das ist dann zumindest keine Frage des Geldes .

20.08.2008 - 08:54 Uhr

Schau dir die DataSet.Load() - Methode an.

30.06.2008 - 10:42 Uhr

Hallo,

hat jemand vielleich eine Idee, wie man in diesem Zusammenhang eine "Weitersuchen"-Funktionalität realisieren könnte?
Danke.

04.06.2008 - 14:12 Uhr

Benuzt du Vista?

01.04.2008 - 13:06 Uhr

Danke, danke

01.04.2008 - 12:24 Uhr

@Spiesy.
Fast richtig

du musst thr im BackGroundWorker-Thread initialisieren und zwar so:



private Thread thr;

private void backGrondWorker_DoWork(object sender, DoWorkEventArgs e)
{
     this.thr= Thread.CurrentThread;
}

01.04.2008 - 11:52 Uhr

Habe für das Thema auch über 2 Tage investiert - ergebnislos. Seit dem erstelle ich mir beim Start de BGW ein Threadobjekt mit Thread.CurrentThread, welches ich dann mit thread.Abort() kille. Ist nicht schön, funktioniert aber einwandfrei.

01.04.2008 - 11:05 Uhr

Hallo, ich möchte mir eine Art Downloadmanager für Rapidshare bauen(ich weiss, gibts schon 1000fach). Allerding möchte ich auch den Premium -Account nutzen können. Ausserden werden ja die Links irgenwie interpretiert und geändert. Meine Frage nun: gibt es da eine Art API oder Dokumentation für den Zugriff. Für einen Tip wäre ich sehr dankbar.

12.03.2008 - 11:05 Uhr

dataGridView.Columns[deineSpalte].Visible=false;

08.02.2008 - 07:57 Uhr

Weiss jetzt nicht genau wie das heißt, es geht aber auf jedem Fall mit Rechtsklick auf die Varialble und dann nach "Feld einkapseln suchen"

16.11.2007 - 09:29 Uhr

...Ist natürlich das erste was ich ausprobiert habe.

Bin leider immer noch nicht weiter, schlimmer noch - eine Listview mit 20 Spalte und ca. 30 Datensätzen braucht über eine Minute

13.11.2007 - 11:00 Uhr

Danke, leider muss ich mich hier mit Office XP auseinanderstzen.

12.11.2007 - 16:43 Uhr

Hallo, ich habe die Aufgabe erwischt, einen Office-Export zu schreiben. Der User hat Möglichkeit den Inhalt einer ListView nach Excel oder Word zu exportieren. Während Excelexport rasend sschnell durchläuft (2-3 sek), dauert es beim Wordexport locker über 10 Sekunden, obwochl die Logik die gleiche ist. Hier die Klasse (sorry für VB-Code):


Option Strict On
Option Explicit On

Imports Microsoft.Office.Interop

Public Class lvwExport

    Public Shared Sub ExcelExport(ByVal lvwToExport As ListView, ByVal exportName As String)

        Dim xlApp As Excel.Application = New Excel.ApplicationClass()
        Dim xlMappe As Excel.Workbook
        Dim xlBlatt As Excel.Worksheet
        Dim xlZelle As Excel.Range

        xlApp.Visible = True
        xlMappe = xlApp.Workbooks.Add
        xlBlatt = CType(xlMappe.Sheets(1), Excel.Worksheet)
        xlBlatt.Name = exportName
        xlZelle = xlBlatt.Range("A1")


        With xlZelle

            Dim i As Integer = 1
            'Einfügen von Columnheadern
            For Each col As ColumnHeader In lvwToExport.Columns
                .Cells(1, i) = col.Text
                i = i + 1
            Next
            '.Range("A1:A" & i)

            Dim s As Integer = 1 'spalte
            Dim z As Integer = 2 'zeile
            'Einfügen von Values
            For Each lvi As ListViewItem In lvwToExport.Items 'zeilendurchlauf
                For Each si As ListViewItem.ListViewSubItem In lvi.SubItems 'spaltendurchlauf
                    .Cells(z, s) = si.Text
                    s = s + 1
                Next
                s = 1 'in nächster zeile die splate wieder auf eins setzen
                z = z + 1
            Next

        End With

    End Sub

    Public Shared Sub WordExport(ByVal lvwToExport As ListView, ByVal exportName As String)
        Dim wApp As Word.Application = New Word.ApplicationClass()
        Dim wDoc As Word.Document

        wApp.Visible = True
        wDoc = wApp.Documents.Add

        With wApp.ActiveDocument
            'tabelenstruktur erstellen
            .Tables.Add(Range:=wApp.Selection.Range, NumRows:=1, NumColumns:=lvwToExport.Columns.Count, DefaultTableBehavior:=Word.WdDefaultTableBehavior.wdWord9TableBehavior, AutoFitBehavior:=Word.WdAutoFitBehavior.wdAutoFitWindow)
            With wApp.Selection.Tables(1)
                If wApp.Selection.Tables(1).Style.ToString() <> "Tabellengitternetz" Then
                    wApp.Selection.Tables(1).Style = "Tabellengitternetz"
                End If
                wApp.Selection.Tables(1).ApplyStyleHeadingRows = True
                wApp.Selection.Tables(1).ApplyStyleLastRow = False
                wApp.Selection.Tables(1).ApplyStyleFirstColumn = False
                wApp.Selection.Tables(1).ApplyStyleLastColumn = False
            End With

            'Einfügen von Columnheadern
            'wApp.Selection.SelectColumn()
            For Each col As ColumnHeader In lvwToExport.Columns
                wApp.Selection.TypeText(Text:=col.Text)
                wApp.Selection.MoveRight(Unit:=Word.WdUnits.wdCell)
            Next

            'Einfügen von Values
            For Each lvi As ListViewItem In lvwToExport.Items 'zeilendurchlauf
                For Each si As ListViewItem.ListViewSubItem In lvi.SubItems 'spaltendurchlauf
                    wApp.Selection.TypeText(Text:=si.Text)
                    wApp.Selection.MoveRight(Unit:=Word.WdUnits.wdCell)
                Next
            Next

        End With

    End Sub

End Class

Wahrscheinlich geht es bei der Art und Weise wie ich den Export mache nicht schneller, und es gibt eine andere Möglichkeit. Wichtig ist, daß die Tabelle- Spalten und Zeilenlinien hat. Für einen Hinweis wäre ich dankbar.

12.11.2007 - 16:26 Uhr

Ich hatte mal eine Art Plug-In installiert, natürlich habe ichs nicht mehr, womit das Scrollen möglich war. Ich hatte es glaube ich von vbarchiv.de (oder so). Frag mal dort.

12.11.2007 - 11:51 Uhr

Original von Oxygen
Hallo Jonny

Der weiss nämlich, daß SQL kein Update oder Insert mit Join

Sorry, da solltest du aber auch noch mal nachlesen:

CREATE TABLE #T1 (ID INT, FldChar VARCHAR(30))  
INSERT INTO #T1 VALUES (1, NULL)  
  
CREATE TABLE #T2 (ID INT, FldChar VARCHAR(30))  
INSERT INTO #T2 VALUES (1, 'Hello World')  
  
UPDATE T1 SET T1.FldChar = T2.FldChar  
   FROM #T1 T1  
      JOIN #T2 T2 ON T1.ID = T2.ID  
  
SELECT * FROM #T1  
  
DROP TABLE #T1  
DROP TABLE #T2  

😉

Grüße
Flo

Was soll ich darauf sehen? daß ein Update funktionieren kann, habe ich ja angedeutet(obwohls alles andere als richtig ist). Aber beim Insert hörts auf, und eben das wir hier dem CommandBuilder aufgezwungen.

09.11.2007 - 13:34 Uhr

Auf jedem Fall ist der CommandBuilder etwas schlauer als du(sorry). Der weiss nämlich, daß SQL kein Update oder Insert mit Join (vor allem Insert, weil es es keine WHERE-Klausel kennt, die man aber zum joinen braucht)kennt. Vorschlag: SQL lernen und auf den armen CommandBuilder hören