Laden...

Forenbeiträge von DJMesche Ingesamt 24 Beiträge

06.07.2012 - 08:59 Uhr

Hallo nochmal,

da mir ja keiner so richtig geantwortet hat - und ich nun wieder auf Arbeit sitze, habe ich eine Lösung für das Problem gefunden. Beim Einbinden mit Eval() in das Grid Frage ich einfach ab, ob der Wert ein Standardwert ist. Falls das so ist, wird null an das Grid gebunden. 👍

<ItemTemplate>
<asp:Label ID="lblGavErgebnis" Text='<%# (((decimal)Eval("GavErgebnis")!=0) && ((decimal)Eval("GavErgebnis")!=-1)) ? Eval("GavErgebnis") : null %>' runat="server"></asp:Label>
</ItemTemplate>

ähnlich verhält es sich auch bei Datumsfeldern:

<ItemTemplate>
<asp:Label ID="lblGavTermin" Text='<%# (Eval("GavTermin","{0:d}")!=DateTime.MinValue.ToShortDateString()) ? Eval("GavTermin","{0:d}") : null %>' runat="server"></asp:Label>
</ItemTemplate>

läuft!

Danke trotzdem

05.07.2012 - 15:50 Uhr

Danke erstmal!

rein theoretisch geht es mit int? - wäre aber zu viel Aufwand weil es sich um rieseige Klassen handelt und ich da superviel anpassen müsste.

Normaler Integer-Werte können ja im C# nicht mit null betrieben werden 🙁

Noch ne Idee bzgl. Events oder so? Es wäre schön, wenn die Klassen so bleiben könnten, wie sie sind 🙂

Danke!!!

05.07.2012 - 15:13 Uhr

Hey beste Community der Welt! 🙂 🙂 🙂

ich habe eine kleine Frage zu meiner Webanwendung. Ich arbeite mit Builder-Patterns in meinen Klassen - sodass diese immer mit Standardwerten gefüllt sind, welche ggf. überschrieben werden.

Mein GridView wird dabei mit den public Properties der KLassen gefüllt.
(Mit einer Liste von Objekten)

Nun habe ich das Problem, dass Standardwerte bei einigen Zahlen "0" bzw. "-1" sind. Wenn nun in der Datenbank keine Daten gespeichert wurden, enthalten die Properties der Objekte die Standardwerte.

Ich möchte erreichen, dass nach dem Binden an das Grid diese Standardwerte nicht angezeigt werden, sondern die jeweilige Zelle einfach leer bleibt.

Leider hilft mir das

RowDataBound

-Ereignis des

GridViews 

nicht weiter - dort kann ich zwar theoretisch und auch praktisch den Zelleninhalt ändern - leider ist das dann aber nicht sichtbar, da die Daten ja bereits gebunden wurden. Reihen des Gridviews kann ich dabei ausblenden, was mich aber in diesem Fall nicht weiterbringt...

Habt ihr eine Idee?

Vielen Dank!!! 😁

DJMesche

28.02.2012 - 09:41 Uhr

System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;
	
            //nach UTF8 (Bytes) konvertieren
            byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(Server.HtmlEncode(einheit));
	
            //in einem UTF8-String konvertieren
            string einheit = System.Text.Encoding.UTF8.GetString(utf8Bytes );
	
            Message.Body += "Einheit: " + einheit + "%0A";

?

28.02.2012 - 09:33 Uhr

Hey,

Du hast natürlich auch die Möglichkeit, die Klasse vor dem Postback ausgefüllt in eine

Session

zu speichern.
Nach dem Postback könntest du dann auf

null

prüfen und Sie ggf wieder aufrufen.

8)

28.02.2012 - 08:32 Uhr

Vielen Dank an alle - ich habe das Problemchen gestern noch gelöst bekommen!!!

Der Grund, dass es nicht ging, war: ich habe die Paket-Daten nicht vollständig bis zu Ende gelesen!!! 8)

ich musste noch den "Upload"-Button mitschicken (neben dem Bild)!
Der Grundlegende Aufbau des Requests ist also folgendermaßen:


POST  http://beispiel.de HTTP/1.1
Content-Type: multipart/form-data; boundary=--------------------------0e648e47cb5
Host: beispiel.de
Content-Length: 1355

----------------------------0e648e47cb5
Content-Disposition: form-data; name="image[]"; filename="beispiel.jpg"
Content-Type: image/jpeg

$$$DAS IST DAS BILD$$$

----------------------------0e648e47cb5
Content-Disposition: form-data; name="submit"

UPLOAD (Button-Text)
----------------------------0e648e47cb5--

und fertig ist das Paket.
Ich habe nun die Extendet-WebClient-Klasse insofern erweitert,
dass man der PostFile-Funktion (welche ich gestern gepostet habe) ein FileUpload-Objekt und ein Button-Objekt übergibt, und der Post dann ausgeführt wird.

Nähere Infos gibts später 😁

Es Klappt!!!!

👍

27.02.2012 - 14:10 Uhr

Tagchen 🙂
Also um zu deinem Problem zu kommen:
es ist korrekt - nach dem ersten Boundary folgen nur noch welche, die zwei "--" mehr vorn dran haben

Einen kompletten Post für FileUpload bekommst du so:


string boundary = "----------" + DateTime.Now.Ticks.ToString("x");
				HttpWebRequest webrequest = (HttpWebRequest) WebRequest.Create(uri);
				webrequest.CookieContainer = cookies;
				webrequest.ContentType = "multipart/form-data; boundary=" + boundary;
				webrequest.Method = "POST";


				// Build up the post message header
				StringBuilder sb = new StringBuilder();
				sb.Append("--");
				sb.Append(boundary);
				sb.Append("\r\n");
				sb.Append("Content-Disposition: form-data; name=\"");
				sb.Append(fileFormName);
				sb.Append("\"; filename=\"");
				sb.Append(Path.GetFileName(uploadfile));
				sb.Append("\"");
				sb.Append("\r\n");
				sb.Append("Content-Type: ");
				sb.Append(contenttype);
				sb.Append("\r\n");
				sb.Append("\r\n");

				string postHeader = sb.ToString();
				byte[] postHeaderBytes = Encoding.UTF8.GetBytes(postHeader);

				// Build the trailing boundary string as a byte array
				// ensuring the boundary appears on a line by itself
				byte[] boundaryBytes =
					Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

				FileStream fileStream = new FileStream(uploadfile,
				                                       FileMode.Open, FileAccess.Read);
				long length = postHeaderBytes.Length + fileStream.Length +
				              boundaryBytes.Length;
				webrequest.ContentLength = length;

				Stream requestStream = webrequest.GetRequestStream();

				// Write out our post header
				requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);

				// Write out the file contents
				byte[] buffer = new Byte[checked((uint) Math.Min(4096,
				                                                 (int) fileStream.Length))];
				int bytesRead = 0;
				while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
					requestStream.Write(buffer, 0, bytesRead);

				// Write out the trailing boundary
				requestStream.Write(boundaryBytes, 0, boundaryBytes.Length);
			
			WebResponse responce = webrequest.GetResponse();
			Stream s = responce.GetResponseStream();
			StreamReader sr = new StreamReader(s);

			return sr.ReadToEnd();

für jede weitere Datei wird wieder


sb.Append("--");
				sb.Append(boundary);
				sb.Append("\r\n");
				sb.Append("Content-Disposition: form-data; name=\"");
				sb.Append(fileFormName);
				sb.Append("\"; filename=\"");
				sb.Append(Path.GetFileName(uploadfile));
				sb.Append("\"");
				sb.Append("\r\n");
				sb.Append("Content-Type: ");
				sb.Append(contenttype);
				sb.Append("\r\n");
				sb.Append("\r\n");


hinten dran gehängt.

Falls du nur Daten senden wolltest, musst du einfach eine URL mit den Daten wie aus GET bekannt übergeben (?test=1&t=2...")

Frage beantwortet? 8)

27.02.2012 - 13:04 Uhr

Nein, die Anforderungen haben sich nicht geändert.

Ich habe die Klasse nur bzgl. verschiedener Header-Sachen angepasst, wie sie für mich einfacher zu verwenden ist.

Da diese Funktioniert, hab ich sie gepostet, damit andere Mitglieder auch was davon haben 😉

27.02.2012 - 12:42 Uhr

solltest du dich lieber auf die relevanten Teile beschränken.

Das war sogar sehr von Relevanz 😃 (für mich)

27.02.2012 - 12:41 Uhr

Das Upload-Control heißt einfach file[], da ein Array aus verschiedenen Dateien übergeben werden könnte - jedoch nicht wird 😉

Mein Spaghetti-Code hat jedoch den Vorteil, dass er bei meiner Test.php wunderbar funktioniert - es hapert wie gesagt an der Seite 😦

Wenn ich zum einen den Request der Seite beim Upload und den Request des Programms in den Paketdaten vergleiche, kommt (fast) das gleiche raus - daher bin ich mir sicher, dass ich diesen richtig auswerte 😃

27.02.2012 - 10:50 Uhr

Hey Ho!

Ich habe die Klasse nun erweitert, sodass man eine PostFile-Methode hat.
Nachdem ich den fertigen Request abgeschickt habe, bekomme ich ebenfalls die gleiche Antwort wie bei den beiden anderen Methoden auch - bzw. ich glaube sogar die ganze normale Standardseite für den Upload - also nimmt er ih einfach nicht an??? 😦((

Spaghetticode!

private  WebRequest postFile(Uri uri, string fileUploadPath, string fileUploadName, string fileUploadContentType)
		{
			WebRequest webRequest = this.GetWebRequest(uri);
			//Dateinamen ermitteln
			string[] filePath = fileUploadPath.Split('\\');
			string fileName = filePath[filePath.Length - 1];

			string boundary = "----------" + DateTime.Now.Ticks.ToString("x");

			webRequest.Method = "POST";
			webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
			
			//webRequest.ContentLength = Encoding.Default.GetBytes(parameters).Length;
			//using (StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream(), Encoding.Default))
				//streamWriter.Write(parameters);
			
			//Build Message Header
			StringBuilder sbHeader = new StringBuilder();
			sbHeader.Append("--");
			sbHeader.Append(boundary);
			sbHeader.Append("\r\n");
			sbHeader.Append("Content-Disposition: form-data; name=\"");
			sbHeader.Append(fileUploadName);
			sbHeader.Append("\"; filename=\"");
			sbHeader.Append(fileName);
			sbHeader.Append("\"");
			sbHeader.Append("\r\n");
			sbHeader.Append("Content-Type: ");
			sbHeader.Append(fileUploadContentType);
			sbHeader.Append("\r\n");
			sbHeader.Append("\r\n");

			string postHeader = sbHeader.ToString();
			byte[] postHeaderBytes = System.Text.Encoding.UTF8.GetBytes(postHeader);
			byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
			//Stream der Datei lesen
			FileStream fileStream = new FileStream(fileUploadPath,FileMode.Open, FileAccess.Read);

			long length = postHeaderBytes.Length + fileStream.Length + boundaryBytes.Length;
			webRequest.ContentLength = length;

			Stream requestStream = new MemoryStream();
			
			// Write out our post header
			requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);

			// Write out the file contents
			byte[] buffer = new Byte[checked((uint)Math.Min(4096,(int)fileStream.Length))];
			int bytesRead = 0;
			while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
				requestStream.Write(buffer, 0, bytesRead);

			// Write out the trailing boundary
			requestStream.Write(boundaryBytes, 0, boundaryBytes.Length);

			Stream dataStream = webRequest.GetRequestStream();
			requestStream.Position = 0;
			CopyStream(requestStream,dataStream);
			

				
				//streamWriter.Write(););

			return webRequest;
		}

Hilfe? 😃

27.02.2012 - 09:20 Uhr

Hat das einen Sinn, dass Du ein WebBrowser-Control nutzen willst?

Hast Du die Forensuche schon mal verwendet? Dann wärst Du mit Sicherheit auf
>
gestoßen, mit dem so etwas viel einfacher umzusetzen ist.

Dann sag mir mal bitte, wie ich Damit Dateien sende - Boundaries erzeuge und die Header bearbeite? 😃

Ob ich nun die Klasse oder mein Webbrowser-Control nehme, nimmt sich eigentlich nichts, da die Post-Daten die selben sind.

Aber Danke für den Tipp! Die Anmeldung hat bereits funktioniert 😃

27.02.2012 - 08:13 Uhr

Hallöchen.

Es geht um die Seite xxxxxx - wo automatisiert Bilder hochgeladen werden sollen.
Webbrowser-Control wollte ich einfach mal verwenden, um mich damit zu beschäftigen 😉

Was vielleicht noch eine wichtige Information ist:

Ich habe Anfangs die Steuerung rein über die Elemente und Invoke's gemacht.
Wenn ich in dem Webbrowser-Control den Upload-Button klicken lasse, öffnet sich normal das Explorer-Fenster zur Auswahl eines Bildes - jedoch kommt nach dem Upload genau der gleiche Fehler!!! D. h. im Webbroser-Control ist es mir ebenfalls nicht möglich, auf normale Weise Bilder hochzuladen?! (Auch nicht, wenn ich selber klicke) - wenn ich ess aber im IE mache, funktioniert es? 😦

Ich bin verzweifelt!!! 😃

Ich schau mir die andere Methode mal an - mit der habe ich auch schon gearbeitet 😉
Aber ich bitte trotzdem darum, eine Lösung zu finden 😛

Einen schönen Tag allen! 😃

26.02.2012 - 22:50 Uhr

Guten Tag beste Community der Welt 😃

habe ein kleines Problem - ich habe jetzt 10 Stunden damit verbracht,
einer Webseite ein

Webbrowser1.Navigate

mit richtigen Postback-Daten zu senden (ich möchte ein Bild automatisch hochladen lassen).

Dabei habe ich am Ende mit Wireshark die Protokolle augewertet und alles in den Headern und den Daten exakt so angepasst, wie es im Paket der Seite aussieht, wenn ich eine Datei hochlade.

Folgendes Ergebnis:

TCP-Protokoll (Data) vom Upload der Seite:

POST /upload HTTP/1.1
Host: www.xxxxxx.de
Connection: keep-alive
Content-Length: 102085
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like 

Gecko) Chrome/17.0.963.56 Safari/535.11
Content-Type: multipart/form-data; boundary=----

WebKitFormBoundarypBO60PvNgETAmp5T
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSID=118q5p14niusjvkueppds0bki2

------WebKitFormBoundarypBO60PvNgETAmp5T
Content-Disposition: form-data; name="image[]"; filename="35068125sz3.jpg"
Content-Type: image/jpeg

BExifMM*X(12i
'
'Adobe Photoshop CS5 Windows2012:02:22 23:12:440221Xjr(zHHAdobe_CMAdobed		

	
k"
?	
	
3!1AQa"q2B#$Rb34rC%Scs5&DTdEt6UeuF'Vfv7GWgw5!

1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw?X]hfi%sGUgKBCjulfSZ~2 ung$xwc0g{	

<U5\@!p~y$7GZG6la0(|Xz,,o}~@/2?5gr|\lh"xfCjpsHn|\?'%ii?pPvlFsI(fX^]n

$.'kc=7FYYxF+tRJE_&[_2/TXvU@yhI~5j]W=k--7NeLj"s

Und hier die von meinem Programm erzeugten Daten:

POST /upload HTTP/1.1
Host: www.xxxxx.de
Connection: Keep-Alive
Content-Length: 101942
Cache-Control: no-cache
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; 
Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; 

Media Center PC 6.0; .NET4.0E; InfoPath.3; .NET4.0C)
Content-Type: multipart/form-data;boundary=----

WebKitFormBoundarymAL4XOCcc8Qu07NA
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, 

image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, 

application/vnd.ms-powerpoint, application/msword, */*
Accept-Encoding: gzip, deflate
Accept-Language: de-DE
Cookie: PHPSESSID=h8isbonpbcldqima31afcnqf32
------WebKitFormBoundarymAL4XOCcc8Qu07NA
Content-Disposition: form-data; name="image[]"; filename="35068125sz3.jpg"
Content-Type: image/jpeg

BExifMM*X(12i
'
'Adobe Photoshop CS5 Windows2012:02:22 23:12:440221Xjr(zHHAdobe_CMAdobed		

	
k"
?	
	
3!1AQa"q2B#$Rb34rC%Scs5&DTdEt6UeuF'Vfv7GWgw5!

1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw?X]hfi%sGUgKBCjulfSZ~2 ung$xwc0g{	

<U5\@!p~y$7GZG6la0(|Xz,,o}~@/2?5gr|\lh"xfCjpsHn|\?'%ii?pPvlFsI(fX^]n

$.'kc=7FYYxF+tRJE_&[_2/TXvU@yhI~5j]W=k--7NeLj"s

Natürlich ist die Reihenfolge der Daten im Header unterschiedlich - aber das tut ja nichts zur Sache.

Nun die Frage: Ich hab zwar auch Ahnung von PHP - aber, warum will die Seite meinen Post nicht? Ich bekomme immer die Antwort-(Seite): Erlaubt sind Bilder im Format jpg, png und gif.
Maximale Dateigröße beträgt 5MB.

Leider aber nicht die erwartete: Upload-Erfolgreich-Seite

Habe Referer auch schon angepasst und probiert - aber ich bekomms nicht hin.

Was könnte der Programmierer abfragen - oder wie könnte das mit den Headern zusammenhängen? Die Daten stimmen komplett überein - auch das Format 😦

Vielleicht versteht mich ja einer und kann mir helfen 😃
Ich bin zwar auch in PHP fit, aber ich kanns nicht lösen 😦

Ich bin über jede hilfreiche Hilfe dankbar 😉

Einen schönen Abend an alle!!!

Danke! 😃

02.02.2012 - 09:59 Uhr

Wo ist das Problem mit der Blacklist? 🙂

Naja das soll schon alles ziemlich genau so passieren 🙂

Es gibt als einzigen gleichen Dienst Lix.in - deswegen habe ich DAS gemacht 😁

02.02.2012 - 07:56 Uhr

Hallo liebe Community 8)

ich habe ein kleines Problemchen... 🙄
Ich habe ein kleines Projekt programmiert: einen Link shortener und crypter

Prinzipiell alles gut - die angeforderte Seite wird auch einfach in einen iFrame geladen.

Nun gibt es Seiten, welche extra sdo gebastelt wurden, dass diese in iFrames **nicht **funktionieren (facebook, Google, Twitter...)

Jetzt wollte ich eine Funktionalität integrieren, die beim Link erstellen die neu erstellte URL prüft (yammi.us/XYZ), ob ein Inhalt geladen werden kann.

Wie bekomme ich den Inhalt der fertig geladenen Seite? Mein

GetResponse()

gibt mir nur den aspx-Inhalt bis

<iframe src="...."></iframe>

Im Iframe selbst ist dabei kein Inhalt ausgelesen wurden....
Weiterhin habe das selbe in sämtlichen Events auf der Redirect-Seite (welche den iFrame mit Inhalt zusammenbaut) versucht, den iframe auszulesen....aber es steht nie Inhalt drin 🙁

  1. versteht ihr mich?
  2. Ideen? 😁

Was ich eigentlich wissen will: wenn bei der erstellten URL nach vollständigem Aufbau im iFrame

<body></body>

steht, geht die Seite nicht und soll als "nicht unterstützt" in die DB eingetragen werden 🤔

VIELEN DANK!!! 😉

02.02.2012 - 07:48 Uhr

Also prinzipiell ist das Möglich die Seite komplett auszulesen, alles in absolute Pfade umzuwandeln und dann in einen DIV zu schreiben.

Bedenke dabei aber auch, dass du in dem Moment als Proxy agierst und das auch ganz schön Traffic verursachen kann 😉

10.11.2011 - 11:41 Uhr

ICH HABS GEFUNDEN! Sorry 😉

Also das Problem war ein UpdatePanel was dynamisch mit eingebunden wurde,
deswegen hat der nicht ausgelöst....Jetzt feuert er wieder - ohne UpdatePanel! 😃
+
Danke!

10.11.2011 - 09:40 Uhr

ne es ist eine property

  public bool ImageButton { get; set; }
 public string ImageButtonImage { get; set; }
  1. Das is Ultracool

🤔

10.11.2011 - 08:55 Uhr

Hallo Liebe Mitglieder 😁

ich habe ein mehr oder weniger großes Problem...

ich habe 3 Usercontrols programmiert - also drei Objekte, welche ich direkt in die ASPX-Seite einbinden kann. Jedes dieser Objekte erbt vom

ComositeControl

und enthält je zwei Labels, zwei Validatoren, ein UpdatePanel, ein Textfeld und ein ImageButton (zeitweise auch Linkbutton getestet).

Alle Events des Controls funktionieren tadellos - nicht aber das Click-Event des Link- bzw. Imagebuttons. Sogar in die

OnLoad

-Routinen des Image-/Linkbuttons komm ich rein - nicht jedoch in die Ereignisse

OnClick

und

OnCommand

Ich habe bereits das komplette Internet durchgelesen und nichts dazu gefunden 🤔 😁 Also gefunden genug - aber nichts was etwas gebracht hat

Wichtig dabei: Der Postback wird einfach nicht ausgeführt - d. h. die Seite wird auch nicht neu geladen.

Wäre schön, wenn Ihr mir weiterhelfen könntet!!!

Hier noch n kleiner kurzer zusammengefasster beispielausschnitt aus dem Ctl:


public class ItemBase : CompositeControl
{

 protected Label _labelInfo;
        protected Label LabelInfo
        {
            get
            {
                if (_labelInfo == null)
                    LabelInfo = CreateLabelInfo();
                return _labelInfo;
            }
            set { _labelInfo = value; }
        }

 protected ImageButton _clickImageButton;
        protected ImageButton ClickImageButton
        {
            get
            {
                if (_clickImageButton == null)
                    ClickImageButton = CreateClickImageButton();
                return _clickImageButton;
            }
            set { _clickImageButton = value; }
        }


#region control generate
//Hier wird ein Label erzeugt und zurückgegeben
protected virtual Label CreateLabelInfo()
        {
            Label retVal = ControlCreator.Instance.CreateLabel("labelInformation1", "Nummer: ");
            return retVal;
        }

//hier wird der ImageButton erzeugt und das Event zugewiesen
protected ImageButton CreateClickImageButton()
        {
           ImageButton retVal = ControlCreator.Instance.CreateImageButton("imageButton1", ImageButtonText);
            if ((ImageButtonImage.Trim() != string.Empty) && (ImageButton))
            {
                /*Einbinden des Bildes*/
                retVal.ImageUrl = ImageButtonImage.Trim().ToString();
                retVal.CommandName = ImageButtonCommandName;

                 //In dieses Event wird niiieee reingegangen - egal was ich mache

                retVal.Click += (ImageButtonClickedEvent);
                             
                

            }
            return retVal;
        }

}
#endregion


#region control Erstellung
protected override void CreateChildControls()
        {

          /*  if(!Page.IsPostBack)*/
            
                ClearProperties();

                Panel wrappingPanel = CreateWrappingPanel();
            
                wrappingPanel.Controls.Add(LabelInfo);
                if (ImageButton)
                {
                    wrappingPanel.Controls.Add(ClickImageButton);
            /*        wrappingPanel.Controls.Add(ClickLinkButton);*/

                }

                Controls.Add(wrappingPanel );
}
#endregion


06.04.2011 - 14:24 Uhr

+OK Gpop ready for requests from 96.9.189.10 ei6pf121077vdb.28

Danke Danke Danke 😁 Hab mir jetzt den Beitrag von MSDN auch mal durchgelesen und jetzt funktionierts!!!! 8) 😁 8o

Für alle anderen ->

 System.Net.Sockets.TcpClient POP3Server;
            POP3Server = new System.Net.Sockets.TcpClient();
            System.Net.Security.SslStream netStream;
            //ServicePointManager.ServerCertificateValidationCallback = new System.Net.
            //new ServicePointManager.RemoteCertificateValidationCallback(ValidateServerCertificate);
           // System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();


            POP3Server.Connect(this.txtServeradresse.Text, Convert.ToInt32(this.txtPort.Text));
            Trace.Warn("Verbindung hergestellt!");
            netStream = new SslStream(POP3Server.GetStream(), false, 
    new RemoteCertificateValidationCallback (delegate{return true;}), 
    null
    );
            Trace.Warn("SSL-Stream gelesen");
            netStream.AuthenticateAsClient(this.txtServeradresse.Text);
            Trace.Warn("Authentizierung abgeschlossen");
            StreamWriter sw = new StreamWriter(netStream);
            Trace.Warn("SW erzeugt");
            StreamReader sr = new StreamReader(netStream);
            Trace.Warn("SR erzeugt");
            sw.WriteLine("USER " + this.txtBenutzername.Text);
            Trace.Warn("Benutzername gesendet");
            sw.Flush();
            string i = sr.ReadLine();
            lblAusgabe.Text = i;

Danke 😮)

06.04.2011 - 14:03 Uhr
ServicePointManager.ServerCertificateValidationCallback =
                     new RemoteCertificateValidationCallback(delegate { return true; });

Habe ich bereits verwendet und auch im vorherigen Beitrag erwähnt...nein..klappt leider nicht 🙁

Aber trotzdem Danke 🙂

06.04.2011 - 08:37 Uhr

Hallo mal wieder - wieso habe ich die Antwort seit einer Woche nicht gesehen, wenn ich auf "eigene Beiträge" klicke?

Also das mit dem COnnect hat sich jetzt erledigt...fragt nicht warum, aber es geht nach ein wenig umgeschreibe...

Jetzt geht es aber weiter....

"Invalid certificate received from server" ?

Diese Meldung bekomme ich weder mit der

TrustAllCertificatePolicy

-Klasse, noch mit

ServicePointManager.ServerCertificateValidationCallback =
                     new RemoteCertificateValidationCallback(delegate { return true; });

weg 🙁

Was soll ich machen? das kann doch nicht so schwer sein von dem Server mal eine liebe Antwort zu bekommen 😁

Vielen Dank für eure Hife, anbei nochmal der aktuelle "Test"-Code

 protected void Abrufen_Click(object sender, EventArgs e)
        {
            System.Net.Sockets.TcpClient POP3Server;
            POP3Server = new System.Net.Sockets.TcpClient();
            System.Net.Security.SslStream netStream;
            //ServicePointManager.ServerCertificateValidationCallback = new System.Net.
            //new ServicePointManager.RemoteCertificateValidationCallback(ValidateServerCertificate);
            System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();


            POP3Server.Connect(this.txtServeradresse.Text, Convert.ToInt32(this.txtPort.Text));
            Trace.Warn("Verbindung hergestellt!");
            netStream = new SslStream(POP3Server.GetStream());
            Trace.Warn("SSL-Stream gelesen");
            netStream.AuthenticateAsClient(this.txtServeradresse.Text);
            Trace.Warn("Authentizierung abgeschlossen");
            StreamWriter sw = new StreamWriter(netStream);
            Trace.Warn("SW erzeugt");
            StreamReader sr = new StreamReader(netStream);
            Trace.Warn("SR erzeugt");
            sw.WriteLine("USER " + this.txtBenutzername.Text);
            Trace.Warn("Benutzername gesendet");
            sw.Flush();
            string i = sr.ReadLine();
        }
    }

    public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
    {
        public TrustAllCertificatePolicy() { }
        public bool CheckValidationResult(ServicePoint sp,
            X509Certificate cert,
            WebRequest req,
            int problem)
        {
            return true;
        }
    }

01.04.2011 - 10:38 Uhr

Hallöchen 😮)

Ich habe eine Problem mit meiner ASP-Anwendung.

Ich brauche einen Client, der Emails bei googlemail abruft.

Das SSL sollte hier nicht das Problem sein, da die Exception bereits beim Connect mit dem Server auftritt.

Leider habe ich bis jetzt nichts im Intenret gefunden...wo ist das Problem?

Anbei noch ein Stückchen Quellcode - es wäre schön, wenn mir schnell jemand helfen könnte 🙂 :rtfm:

Viele Grüße 🤔


this.TcpClient = new TcpClient();
            
            //Verbinden
            TcpClient.Connect(sServer,iPort); 
//pop.gmail.com:995 oder imag.gmail.com:993 (gleiocher Fehler))
            
            this.SslStream = new System.Net.Security.SslStream(TcpClient.GetStream());
            this.SslStream.AuthenticateAsClient(sServer);

                 
            SWriter = new StreamWriter(this.SslStream);
         
            SReader = new StreamReader(this.SslStream);
        
            //Benutzername senden
            Sende_Befehl("USER " + sUsername);

            //Passwort senden
            Sende_Befehl("PASS " + sPasswort);

        }

Der Fehler, welchen ich aus dem TcpClient-Objekt auslesen konnte, sieht folgendermaßen aus:

Fehlermeldung:
InvalidOperationException: Der Vorgang ist für nicht verbundene Sockets unzulässig.]
System.Net.Sockets.TcpClient.GetStream() +1606460
FreeLook.DataLayer.Verbindung.Connection.Connect(String sServer, Int32 iPort, String sUsername, String sPasswort) in D:\Desktop\FreeLook\FreeLook.DataLayer\Verbindung\Connection.cs:79
FreeLook.DataLayer.Mail.Mailbox..ctor(String sServer, Int32 iPort, String sUsername, String sPasswort) in D:\Desktop\FreeLook\FreeLook.DataLayer\Mail\Mailbox.cs:23
FreeLook.BusinessLayer.Verbindung.Email_Auflisten() in D:\Desktop\FreeLook\FreeLook.BusinessLayer\Verbindung.cs:27
FreeLook.Web._Default.Abrufen_Click(Object sender, EventArgs e) in D:\Desktop\FreeLook\FreeLook.Web\Default.aspx.cs:27
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Fehlermeldung:
"POP3Server.Client.MulticastLoopback" hat eine Ausnahme vom Typ "System.Net.Sockets.SocketException" verursacht.

DANKE 👍