Laden...

Forenbeiträge von bernett Ingesamt 53 Beiträge

09.08.2013 - 22:26 Uhr

Update:

Mit dem folgenden Code funktioniert es. Wobei ich es nicht so schön finde und auch nicht ganz nachvollziehen kann. Ein Timeout von 0 wirkt Wunder?

        <script src="Scripts/jquery-2.0.3.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            //Save scroll position after row select
            var scrollTop;
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(function () {
                scrollTop = document.getElementById('results').scrollTop;
            });

            prm.add_endRequest(function () {
                window.setTimeout(setScrollTop, 0)
            });

            function setScrollTop() {
                document.getElementById('results').scrollTop = scrollTop;
            }
        </script>
09.08.2013 - 21:04 Uhr

Hallo zusammen,

ich quäle mich nun schon ein paar Stunden damit rum, deshalb muss ich nun doch einen Hilfeschrei absetzen.

Ich habe eine einzelne Seite "Index.aspx", die ein eigenes control "Search.ascx" enthält. Das Control ist in ein Panel eingebettet und wird in einem Modalen Dialog über den ModalPopupExtender des Ajax Control Toolkits geöffnet.

Das Öffnen funktioniert, ebenso die Suche darin. Um das Control etwas generischer zu halten habe ich.

  • Einen Event erstellt, an den ich mich auf der Index.aspx gegistrieren kann (ResultsRetrieved)
  • Dieser Event bekommt als EventArgs die Liste<MyEntity> übergeben
  • Im EventHandler parse ich die Liste in ein DataSet und rufe dann SetData auf dem Control auf
  • In der SetData-Methode wird das DataSet an das Grid gebunden

Auch das funktioniert wie gewünscht. Da das modale Fenster immer automatisch nach der Suche geschlossen wurde, habe ich einen weiteren Event im Control "SearchClicked". Im Handler (Index.aspx) rufe ich dann modalPopupExtender.Show() auf.

Das Problem ist nun:
Wenn ich im Grid innerhalb des modalen Dialogs eine lange Liste erhalte, möchte ich die Scrollbar nach dem selektieren wieder auf der gleichen Stelle haben. Hierfür habe ich in der Vergangenheit schon folgendes Konstrukt verwendet.

        <script src="Scripts/jquery-2.0.3.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            var scrollTop;
            Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

            function BeginRequestHandler(sender, args) {
                var elem = document.getElementById('results');
                scrollTop = elem.scrollTop;
            }

            function EndRequestHandler(sender, args) {
                var elem = document.getElementById('results');
                elem.scrollTop = scrollTop;
            }

        </script>

Die Zeile "elem.scrollTop = scrollTop;" wird im Debugger zwar durchlaufen und "scrollTop" enthält auch den aktuellen Wert (z. B. 1456), jedoch ist der Wert im Element danach weiterhin 0.

Laut der Spezifikation:
https://developer.mozilla.org/en-US/docs/Web/API/element.scrollTop
wird der Wert auf 0 resettet, wenn scrollen aktuell nicht nötig ist (ist es aber definitiv).

Die Methode "$(selector).scrollTop(position)" von jQuery wurde ebenfalls schon erfolglos getestet.
http://www.w3schools.com/jquery/css_scrolltop.asp

Evtl. übersehe ich ja auch einfach etwas... ist schon spät.

Danke im voraus,
bernett

18.11.2010 - 17:06 Uhr

Dankeschön, habs grade gefunden gehabt.

System.ServiceModel.Web.dll

Wäre es gewesen! 😃

18.11.2010 - 16:52 Uhr

Ziemlich alt der Thread, aber evtl. interessiert es ja wen. Unter .NET 4.0 klappt es zumindest mit dem JSON-Serializer.


MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(PersonDict));
ser.WriteObject(stream1, personDict);

stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
string jSonContent = sr.ReadToEnd();

Da ich aber auf .NET 3.5 gefangen bin aktuell, hat wer eine Lösung dafür gefunden? JSON funktioniert wie ich es sehe wohl wirklich nur mit 4.0. 😦

Grüße,
bernett

12.10.2010 - 20:28 Uhr

Hallo,

ich greife in einer ASPX-Anwendung auf einen PHP-Service zu. Die Proxy-Generierung hat nach anfänglichen Schwierigkeiten nun auch funktioniert. Das Problem ist, ich erhalte die richtigen Daten in der Response, aber .NET scheint diese nicht korrekt zu interpretieren. Die beiden Elemente in der Response (bool und string) sind im c# null bzw. false, in der Response selbst ist der Inhalt jedoch korrekt (siehe unten).

Hier die beiden Responses (PHP und mein eigenes Testsystem welches als ASMX umgesetzt ist). Das ASMX-Response funktioniert wunderbar.

PHPService-Response:


<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://www.platzhalter.de/test/ServiceCaseMessages.xsd">
  <env:Body>
    <ns1:CreateUpdateServiceCaseResponse>
      <createUpdateSuccessful>true</createUpdateSuccessful>
      <createUpdateResponseMessage>Transaction finished</createUpdateResponseMessage>
    </ns1:CreateUpdateServiceCaseResponse>
  </env:Body>
</env:Envelope>

ASMX-Respone (Testsystem):


<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body><CreateUpdateServiceCaseResponse xmlns="http://www.platzhalter.de/test/ServiceCaseMessages.xsd">
 <createUpdateSuccessful>true</createUpdateSuccessful>
 <createUpdateResponseMessage>Transaction finished</createUpdateResponseMessage>
 </CreateUpdateServiceCaseResponse>
 </soap:Body>
 </soap:Envelope>

Hierbei fallen mir drei Unterschiede auf.

  1. Es fehlen die Namespaces
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    in der Response des PHP-Services.

  2. Der PHP-Service verwendet ein env:Envelope, der ASMX ein soap:Envelope Präfix

  3. Der PHP-Service definiert einen Präfix für die Schema-Beschreibung (ns1), der ASMX-Service verwendet die Beschreibung im Umschließenden CreateUpdateServiceCaseResponse-Element.

Das einzige was in meinen Augen problematisch wäre ist Punkt 1. Hierfür würde ich nun gerne versuchen die Response zu manipulieren, da PHP-Seitig keine Lösung absehbar ist und ich dort auch keinen Zugriff auf Quellcode habe. Ich denke da an ein Manipulieren, bevor die XML-Deserialisierung clientseitig stattfindet. Ist sowas möglich?

Solltet Ihr andere Dinge entdecken die ich übersehe wäre ich auch sehr dankbar.

Vielen Dank im Voraus,
bernett

11.03.2010 - 09:26 Uhr

Hallo,

danke für die Meinungen. Wir werden es nun aus oben genannten Gründen doch mit einer separaten Schicht probieren.

Gruß,
bernett

03.03.2010 - 18:01 Uhr

Hallo zusammen,

ich habe hier eine Frage, die ich gerne vor der Umsetzung eines neuen Projektes noch einmal hier in den Raum werfen möchte. Wir haben noch nicht so viel mit OR-Mappern gearbeitet und tasten uns gerade wieder heran.

Das Grundprinzip des OR-Mappers ist es ja bereits, die Daten aus relationalen Datenbanken in verarbeitbare Businessobjekte zu "mappen". Das Problem ist jedoch, dass diese Objekte oftmals nicht dem entsprechen, was ich mir unter einem schönen Objektmodel vorstellen würde (Verwendung von Interfaces, abstrakte Klassen etc.). Zwar ist dies inzwischen bei einigen Frameworks wohl auch möglich ( http://stefanscheller.wordpress.com/2008/12/08/entity-framework-1-db-tabelle-2-klassen/ ), jedoch habe ich noch immer meine Zweifel ob es schön ist, auf den erzeugten Objekten direkt zu arbeiten.

Mein Workaround wäre demnach, ich ziehe zwischen die Modelschicht die mir der OR-Mapper liefert (ich benenne diese hier EFBO) noch eine eigene BusinessObject-Schicht (BO). Auf dieser arbeite ich dann (in meinem Fall in einer ASPX-Basierten Anwendung) und beim Speichern z.B. erzeuge ich mir wieder den Context, mappe die Änderungen von meinen eigenen BOs in die EFBOs und speichere die Änderungen im Kontext.

Die Anwendung würde dann ca. folgendermaßen aussehen.

###############
1.) ASPX + UI-Lib (Arbeitet mit meinen eigenen BOs)
###############
2.) BusinessLayer (Arbeitet mit meinen eigenen BOs und kann Mapping auf EFBOs durchführen
###############
3.) Enthält das Model.edmx, wird generiert aus Datenbank
###############

Es wurde heute schon viel intern darüber diskutiert und ich bin noch immer der Meinung, dass ich zum einen aus Gründen der Wiederverwendbarkeit (UI-Schicht arbeitet hier mit den generierten Model-Objekten) und eben weil ich ein sauberes Objektmodel möchte, die separate Objektschicht lohnen würde. Natürlich entsteht hier aber ein Mehraufwand, da ich von 2 nach 3 jedesmal ein zusätzliches Mapping von BO zu EFBO durchführen muss.

Es kam auch der Vorschlag auf, dass man die erzeugten Objekte ableitet und dann Interfaces wie z.B. IClonable in dieser Klasse implementiert. Jedoch denke ich, dass auch dies wieder einige Probleme mit sich bringen könnte im Bereich Collections (1:n) Beziehungen usw.

Eventuell kann mir ja jemand mal einen entscheidenden Wink geben, den den wir bis jetzt noch nicht bedacht haben und der uns die Entscheidung erleichtert. Auf der einen Seite halte ich es für etwas Overkill mit 2 Objektmodellen, auf der anderen Seite kommt es mir als die sauberere Alternative vor.

Verwendete Systeme/Software:
-SQL-Server 2005
-Entity Framework (3.5)
-Visual Studio 2008

Danke im Voraus,
bernett

07.02.2010 - 21:10 Uhr

hi,

wie so viele hier, benötige auch ich eine entscheidung bezüglich or-mapper oder eigenprogrammierung. ich habe bis jetzt sehr viel im bereich soa gearbeitet und demnach war mein data-layer oftmals durch kapseln der webserviceaufrufe abzubilden. das kommende projekt verlangt jedoch das arbeiten direkt auf datenbankeben. ich habe natürlich schon in datenbanken geschrieben und gelesen, allerdings noch nicht im großen stil und möchte deshalb sehr gerne auf einen or-mapper zurückgreifen wenn dies in meinem fall möglich ist. hier kommen wir auch zur eigentlichen frage. WANN setze ich einen or-mapper ein und wann muss ich das crud-interface selbst erstellen?

danke,
bernett

21.12.2009 - 13:25 Uhr

Hi,

ich habe mir den Artikel eben geladen und erst mal Danke hierfür. Jedoch ist der Post schon etwas älter und ich wollte fragen ob sich hier grundlegende Änderungen ergeben haben. Gerade Schlagwörter wie Native-Threads (kenne ich auch nur aus Podcastst etc.) usw. Sind hier noch nicht vorhanden. Das in dem Dokument enthaltene Wissen deckt sich mit dem, was auch im Studium gelehrt wurde. Aus aktuellem Anlass würde ich mich aber gerne in die aktuellen Vorgehensweisen etwas mehr einarbeiten.

Grüße,
bernett

15.12.2009 - 13:27 Uhr

Hallo zusammen,

ich habe folgendes vor. Ich benötige eine WSDL, welche mir 2 spezifische Funktionen ausreichend beschreibt (2x 2Way --> 4Messages). Dies habe ich bereits mit WSCF von thinktecture durchgeführt. Es existieren also diese 4 Messages und ich kann sie ansprechen.

Jetzt habe ich als Zusatzanforderung, dass eben eine Username/Password Authentifizierung durchgeführt wird. Dies würde ich gerne über den Soap-Header lösen, in dem die beiden Felder entsprechend im Klartext stehen. Als Transportprotokoll wird HTTPS verwendet, weshalb ich hier auf Verschlüsselung verzichten möchte.

Mein Problem ist nun, dass ich keine Möglichkeit finde, wie mein Webservice die Soap-Header Funktion unterstützt. Zwar existieren diverse Artikel wie z.B.

http://www.codeproject.com/KB/cpp/authforwebservices.aspx?msg=3269699#xx3269699xx

Jedoch scheint dieses Vorgehen nicht mehr zu funktionieren oder ich übersehe etwas grundlegendes.

Ich bin mir bewust, dass WCF eventuell der bessere Ansatz wäre. Jedoch lese ich auch oft, dass eben das Resultat von WCF nicht gerade universell über die Grenze .NET hinaus einsetzbar ist. Das Resultierende WSDL übergebe ich einer anderen Firma und diese soll daraus dann einen WS auf deren bevorzugter Technologie aufsetzen. Diesen müssen wir wiederum später ansprechen. Da hier Dinge wie PHP, Java etc. auf uns warten, möchte ich den Service so generisch wie möglich halten. Deshalb auch direkt der Ansatz über WSCF auf Basis von XSDs.

Danke im Voraus,
bernett

09.12.2009 - 14:15 Uhr

Ok, jetzt weiß ich was du damit ausdrücken wolltest.

Danke für die Tipps, ich bleibe bei "". 😃

Grüße,
bernett

09.12.2009 - 13:34 Uhr

die beiden Konstrukte sind nicht semantisch identisch, zumindest dann nicht, wenn wir über beliebige Zahlen sprechen.

Den Satz kann ich nicht ganz nachvollziehen. Von der Bedeutung (Semantik) her, sollte doch beide Konstrukte einen String mit Zahlen liefern. Das es nicht geht, sobald Buchstaben enthalten sind, ist logisch. Hier wird aber bereits die Syntax vom Compiler bemängelt.

09.12.2009 - 12:21 Uhr

Hi,

ich habe eben von einem Kollegen eine interessante Frage gestellt bekommen.

Ehrlich gesagt kannte ich das Konstrukt:
123.ToString() noch gar nicht. Ergibt sich daraus irgendein Vorteil oder ist es völlig egal was benutzt wird. Aus dem Bauch heraus sage ich, dass Variante 2 einfach viel besser lesbar ist und würde deshalb weiterhin dies Methode bevorzugen.

Gruß,
bernett

27.11.2009 - 16:24 Uhr

hm täusche ich mich, oder wird beim einbinden des verweises nicht ohnehin die wsdl.exe aufgerufen. eine proxy-klasse braucht man so oder so um den ws anzusprechen.

so war das auf jeden fall als ich das letzte mal getestet habe. ich hatte das problem, dass die erzeugung des verweises zwar geklappt hatte (zumindest kam keine fehlermeldung...), aber der code nicht angesprochen werden konnte. beim erzeugen über wsdl.exe habe ich dann über entsprechende fehlermeldungen bemerkt, dass die angelieferte wsdl fehlerhaft war.

ist zwar ein alter beitrag, aber die antwort wäre trotzdem interessant!

grüße,
bernett

23.06.2009 - 09:06 Uhr

Hatte ich vergessen zu schreiben. Die Seite des Webservices erreiche ich über den Browser. Ich kann dort auch die Methode anklicken und bekomme die SOAP-Anforderungen und Antworten angezeigt.

Ich konnte den Webverweis ja auch über das Internet erstellen. Nur der Aufruf will nicht klappen. :\

EDIT: Fehler lag im Code selbst. Hat sich erledigt! 😃

22.06.2009 - 18:26 Uhr

Guten Abend,

ich haben ein kleines Problem mit einem erstellten Webservice. Der Service läuft im Intranet wie gewünscht. Nun wurde er auf den externen Webserver gepackt und wurde durch die Firewall nach draußen geleitet.

Ich habe nun auf dem Laptop, welches per UMTS online geht, die Clientanwendung im Visual Studio laufen. Den Webverweis habe ich mit der externen URL in Visual Studio neu erstellt und die Anwendung kompiliert fehlerfrei.

Beim Ausführen der WebMethod erhalte ich jedoch einen Timeout und ich habe keine Ahnung was ich dagegen tun kann. Das Authentifizierung des Webs steht auf "Anonymen Zugriff aktivieren" und der verwendete User hat auch die entsprechenden Rechte (lokal/lan funzt es ja). Die anderen Authentifizierungsmethoden sind nicht angehakt.

Den Service versorge ich mit default-Credentials (was ja eigentlich egal sein müsste oder?). Ich habe auch schon mit "preAuthenticate" und sämtlichen anderen Properties des "service"-Objektes herumprobiert. Leider ohne Erfolg.

Muss eventuell die Firewall nochmal spezielle Berechtigungen für Webservice-Aufrufe erhalten? Laut sämtlichen SOAP/Webservice Büchern ist der Clou an SOAP-Webservices ja, dass die Firewalls damit relativ wenig Probleme haben.

Vielen Dank im Voraus,
bernett

05.03.2009 - 22:19 Uhr

Hallo!

Ich verwende für einige Projekte einen Obfuscator. Klar ist mir bewusst, dass man damit keinen 100%igen Schutz hat, aber zumindest ist die Schwelle schonmal für ein paar "Interessierte" etwas höher.

welchen verwendest du, wenn ich fragen darf?

Das Aktivierungen lästig sind ist mir bewust, aber verlorenes Geld für "ehrlich" erstellte SW ist auch lästig. Man muss halt bei Aktivierungen die entsprechende Infrastruktur und Ausweichoptionen liefern. Dann denke ich auch, dass die wenigsten Leute damit ernsthafte Probleme hätten...

05.03.2009 - 21:00 Uhr

Hi zusammen,

wir überlegen momentan im Unternehmen, ob wir uns
http://www.smartassembly.com/
anschaffen.

Wir hatten auch schon einmal über den Dotfuscator geredet, jedoch sind mit dem wieder ettliche Schulungen und Einarbeitungen verbunden. Noch dazu ist der Preis um ein vielfaches höher.

Smartassembly haben wir in der Testversion in einem Testprojekt ausprobiert und waren im prinzip vom Handling begeistert. Ok es ist sehr klick/bunt, aber im Prinzip kann es das, was man (wir) uns davon versprochen haben.

Frage wäre nun, ob jemand mit dieser Software bereits erfahrung gesammelt hat, bzw. ob jemand das Unternehmen "Cachupa" schon einmal gehört hatte. Mir sagt der Name nichts, und wir sind deshalb nicht so ganz sicher wie zukunftssicher (wenn man in der aktuellen Lage noch von sowas reden kann 😉) diese Investition ist.

Zur allgemeinen Diskussion noch kurz.
Ich bin noch relativ frisch von der Uni und somit fehlt ich sicher noch einiges an Berufserfahrung. Jedoch finde ich, hier werden einfach sehr unterschiedliche Dinge betrachtet. Software, die in Banken/Zentralrechnern etc. läuft müsste man ziemlich sicher nicht gegen Kopie sichern. Wenn die Leute idr. nicht an die DLL kommen, ist das auch verständlich.

Handelt es sich jedoch um Software, die zu einem Privatanwender wandert, sieht die Sache in meinen Augen anders aus. Hier wird sich die Zeit, die bis zum Erscheinen eines Cracks vergeht um einiges verlängern vermute ich. Ich meine es ist Fakt, dass es Leute gibt, die sich an das Schreiben solcher dinger machen. Je einfacher sowas ist, desto schneller macht man es zwischendurch. Kommt man eben über Standardmittel (Reflector/ILDA) nicht direkt an den Code und somit an die (if (authorized)) oder ähnliches, dann werden sich manche leute auch sagen.. naja das lohnt sich nicht.

Das sind wie gesagt, nur Vermutungen und Ansichten von mir. Aber so ganz an der Realität vorbei ist es glaube ich nicht. Mich stören nur etwas die Ansichten "Wer obfuscator nutzen will, der schreibt schlimmen Code". Ich bin der Meinung, mein Code ist ganz gut. Und gerade dadurch DAS er gut/strukturiert ist, hat ein Dritter es leichter, ihn zu verstehen. Benutzt man dinge wie Pattern, Modularisierung etc. nicht, Wird jede Anwendung in meinen Augen um ein vielfaches komplexer, als wenn das ganze ordentlich geplant und strukturiert wurde. Ich sehe das also genau andersrum. Guter Code muss geschützt werden, WEIL er leichter verständlich ist.

Für neue Ansichten bin ich jedoch immer offen! 😉

Grüße,
bernett

PS: Das Thema ist nicht aus der Luft gegriffen, wir besitzen bereits ein Produkt, welches nach kürzester Zeit gecrackt wurde und somit überlegen wir uns Alternativen. Auch eine Aktivierung über Web Services ist angedacht. Auch wenn das viele hier im Forum nicht gerne hören, aber die Realität ist einfach härter als die "Code ist für Jedermann" Einstellung. Irgendwer muss unsere Löhne ja auch bezahlen. 😉

04.02.2009 - 12:56 Uhr
  
rsaCsp = new RSACryptoServiceProvider();
mfPrivKey = rsaCsp.ExportCspBlob(true); 
mfPubKey = rsaCsp.ExportCspBlob(false); 

So habe ich es zumindest aus der MSDN-Doku verstanden.

Was mir bei dem Konzept noch unklar ist:

  1. Wenn ich einen wert, z. B. einen Hash mit
rsaCsp.SignHash(..)

signiere. Warum komme ich dann auf der gegenseite nicht mit "encrypt()" an den Inhalt? Ich dachte die Funktionen bei "signHash" und "decrypt()" sind im prinzip die gleichen? Wenn ich das versuche, also auf der privaten Seite signHash(..); und auf der öffentlichen Seite "encrypt()", bekomme ich eine Meldung:

Schlüssel ist im angegebenen Status nicht gültig.

Mit verifyHash(..) klappt es zwar, dass ich den Hash gegen einen korrekten 2. Hash überprüfe, aber ich komme nicht direkt an den Inhalt der Signatur. Warum geht dies mit encrypt nicht? :.

Oder sollte ich, wenn ich die Rohdaten wieder haben möchte nicht mit signHash sondern mit decrypt arbeiten?

  1. Welchen Zweck haben denn Schlüsselcontainer?
    Ich muss doch ohnehin z. B. auf meiner öffentlichen Seite den Key aus der Registry oder aus dem XML-File laden. Was genau bringt mir hier dann noch ein extra Container? Aktuell lade ich mir die Arrays per XML-Deserialisierung wieder folgendermaßen in meine RSACryptoServiceProvider:
rsaCsp.ImportCspBlob(publicKeyBlob);

Was bringt mir hier dann also das Anlegen des RSACryptoServiceProvider über


CspParameters cspParam = new CspParameters();
cspParam.KeyContainerName = "MY_SIGNING_KEY";
rsaCspItara = new RSACryptoServiceProvider(cspParam);

genau?

Grüße,
bernett

29.01.2009 - 16:17 Uhr

Ich habe momentan ähnliches vor, jedoch nicht über einen PocketPc, sondern über eine ganz nochrmale Windows-Forms Anwendung basierend auf dem .net2.0 Framework.

Anforderungen:
-Webservice mit der Funktion a().
-Webservice soll nur nach Authentifizierung verfügbar sein.
-Kommunikation verschlüsselt (SSL).

Könntest du/ihr da eventuell ein Paar Tutorials linken die du für die Umsetzung verwendet hast? Was ich noch nicht ganz verstehe, wie gebe ich der Client-Anwendung die Authentifizierungsdaten (Credentials) mit? Muss ich die Authentifizierung dann wirklich selbst erstellen oder lässt sich das ebenfalls über den IIS abhandeln?

Danke,
bernett

13.01.2009 - 11:35 Uhr

Kleiner Denkfehler meinerseits... Verzeichnissicherheit im IIS ist hier dein Freund! 😉

09.01.2009 - 12:24 Uhr

Hallo,

meine Anwendung besteht aus einem Webservice, welcher Daten annimmt und diese dann in eine andere Anwendung über Webservices schreibt. Beide Systeme basieren auf .net-Framework und sind mit c# entwickelt.

Ich würde gerne über die Domänenuser authentifizieren. Ich nutze also zum Aufruf des "annehmenden" Services:


string server = "192.168.44.44";
PersonWebService service = new PersonWebService.PersonWebService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials; 
service.Url = string.Format("http://{0}/PersonWebService.asmx", server);

Dies klappt auch. Wenn ich im Webservice über das User-Objekt meine Daten auslese bin ich angemeldet und auch die Domäne stimmt.

Wie kann ich diese Daten nun benutzen, um den 2. Service aufzurufen. Ich habe ja keine Passwortdaten in dem Service verfügbar um:


service.Credentials = new System.Net.NetworkCredential("name", "pw", "domain");

zu verwenden.

Ich habe in diesem Dokument einen Hinweis auf impersonat gefunden und dies auch in der web.config meines WebService Projektes eingeschalten.

Danach habe ich ebenfalls mit den "DefaultCredentials" versucht den 2. Webservice aufzurufen. Jedoch schlägt dies fehl mit dem Hinweis auf fehlerhafte Authentifizierung.

Gibt es eine andere Möglichkeiten um an die Daten aus den Credentials "rann" zu kommen?

Grüße,
bernett

05.01.2009 - 16:16 Uhr

Das hatte ich mir auch schon überlegt. Jedoch würde es dann bei mir so aussehen, dass ich z. B. bei meiner Schnittstelle von der View zum Controller ansetze und dann alles was danach kommt auch ausgeführt wird. Ich müsste also dann für jeden einzelnen Testcase auch wieder Daten (über Webservices) in die Datenbank des 2. Programmes schreiben (Durchlauf des kompletten Models). Das finde ich für Unittests jetzt auch nicht so schön. Ich werde zwar auch hierfür Testfälle schreiben, jedoch ist das ja nicht beim Überprüfen von Properties jedes mal notwendig in meinen Augen.

Ich habe es jetzt wie beschrieben über eine "UnitTestWrapper.cs" Klasse gelöst, die eben jedes Projekt besitzt. Diese enthält meine Testlogik und wird von einer für jedes Projekt separaten NUnit-Datei aufgerufen. Ich finde die Lösung garnicht so schlecht, da ich dann auch Unittests schön über Code vorher durchlaufen und debuggen kann.

Danke,
bernett

05.01.2009 - 12:30 Uhr

Hallo,

danke für den Hinweis. Ich habe das auch ausprobiert, jedoch sagt mir VS immer, dass der Attributpfad "assembly" nicht gültig ist und ich nur type verwenden kann. Für type existiert jedoch kein "InternalsVisibleTo". Liegt das Problem eventuell an den .Net versionen? Ich benutze momentan 3.5 zusammen mit VS2008.

Mit freundlichen Grüßen,
bernett

05.01.2009 - 10:53 Uhr

Guten Morgen,

ich habe mich nun etwas in NUnit eingearbeitet und stehe vor einem kleinen Problem. Meine Tests funktionieren soweit in einem Testprojekt, jedoch ist mein Problem, dass ich meine Zugriffsberechtigungen für mein aktuelles Projekt über den Haufen werfen müsste. Ich kann ja z. B. "internal" Methoden nicht aus dem Testrpojekt aufrufen.

Alternative hierfür wäre, ich schreibe für jedes Teilprojekt meiner Solution eine extra "UnitTestWrapper"-Klasse, in welcher ich die Testlogik verberge und diese Methoden rufe ich dann aus der NUnit-Klasse ([TestFixture]) auf.

Oder übersehe ich hier etwas.

Mit freundlichen Grüßen,
bernett

23.12.2008 - 14:22 Uhr

Das sieht sehr interessant aus. Vielen dank, ich sehe es mir an! 😃

22.12.2008 - 13:35 Uhr

Guten Tag,

ich hatte ein ähnliches Thema bereits hier angesprochen.

Nun wollte ich mal im allgemeinen fragen, wie es von Micorosoft angedacht ist, WSDL-Dokumente zu "individualisieren". So ganz blicke ich noch nicht durch. Ich habe mir mal ein bisschen Java-Webservices angesehen und dort ist es zwar scheinbar oft so, dass WSDL´s auch selbst erstellt werden müssen, damit hat man aber auch immer den vorteil auf seiner Seite, dass man diese eben gestallten kann wie man möchte. (Von Fehleranfälligkeit will ich jetzt mal nicht reden).

Ich bin mit dem MS-Konzept ja auch soweit zufrieden. Aber mir fehlt nunmal die Möglichkeit folgende Einstellungen zu treffen:

  1. Kommentare. Ich spreche in meiner Applikation auch Java-Services an und dort werden oft Kommentare verwendet um auf Feldeigenschaften hinzuweisen. (z.B. "String 160"). Ist dies in der Microsoft-Welt auch möglich?

  2. Wie im Link oben beschrieben, ist mit "int? var" die Möglichkeit gegeben, die minoccurs- bzw. maxoccurs-Attribute zu steuern. Wie aber, kann ich nun z.B. die laut WSDL-Schema vorhandenen Werte von Length (klick) steuern? Ebenso möchte ich unabhängig von den Datentypvorgaben in c#/.net meine Datentypen steuern können. Ich möchte also sagen ob String null sein darf oder nicht (Steuern von Pflichtfeldern). Oder ist dies mit dem System.Web.Services nicht möglich?
    Ich habe auch schon etwas im Zusammenhang mit nillable damals mit XmlElement(...)herumprobiert:


[XmlElement(ElementName="Name",IsNullable=false,DataType="string")] 

jedoch hatte sich hierbei nichts an meiner WSDL geändert.

Danke,
bernett

06.11.2008 - 11:00 Uhr

Hallo,

ich habe hier ein Verständnisproblem. Mein Ziel ist es, aus einer Java Applikation, einen .Net Webservice aufzurufen, welcher dann wiederum auf die CRM-Eigenen Webservices zugreift. Die Authentifizierung von .Net WS zu MS CRM ist über ActiveDirectory (Default Credentials und ein Crm-Eigenes Token (CrmAuthentificationToken)) möglich.

Jedoch wird wohl eine AD Authentifizierung mit Java ehr nicht möglich sein. Was ist hier die geeignete Authentifizierungsmethode? Die Java Anwendung kann ich nicht beeinflussen, somit steht diese Frage auch in einem C# Forum. Ich fasse also lediglich die Schnittstelle (.Net WS) an.

Den Zugriff von aussen kann ich so wie ich das bis jetzt sehe jedoch nur über dein IIS einschränken, bzw wenn ich mehr über die Internas des Java-Programmes weiß über Zertifikate oder ähnliches.

Die Idee wäre also, die IIS Authentifizierung zu nutzen um zu erkennen welcher User/Domain es ist. Nun brauche ich eine Möglichkeit um im ".Net WS" diese Daten auszulesen um an den CRM-Service übergeben zu können.

Hat hier jemand Ideen oder Erfahrungsberichte?

Ich hoffe es kommt rüber was ich meine. :\

Mit freundlichen Grüßen,
bernett

05.11.2008 - 10:23 Uhr

Guten Morgen,

das WCF in der Beziehung mehr Kontrolle bietet glaube ich dir gerne. Jedoch geht es um eine Integration in ein bestehendes System, was schon zum Teil in "System.Web.Services" implementiert wurde. Und für den einen Service bei dem ich umstellen "könnte", möchte ich nun nicht komplett auf ein neues System wechseln. Auch aus Gründen der Wartbarkeit.

@GarlandGreene
Vielen Dank! Genau das habe ich gesucht.

Webmethod:


[WebMethod]
public bool addWorker(int id, string nachname, string vorname,  float? profit)

WSDL:


<s:element minOccurs="1" maxOccurs="1" name="id" type="s:int" /> 
<s:element minOccurs="0" maxOccurs="1" name="nachname" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="vorname" type="s:string" /> 
<s:element minOccurs="1" maxOccurs="1" name="profit" nillable="true" type="s:float" /> 

Ist schade, dass er hier mit dem "nillable" Attribut arbeitet und nicht mit "minOccurs", aber es funktioniert! 😉

Parsen des Nullable Float Wertes in Float. Sollte natürlich nach Abfrage auf null erfolgen:


float f = float.Parse(profit.Value.ToString());

Weiter Möglichkeit zum Parsen mit Delegate:
http://geekswithblogs.net/michelotti/archive/2006/01/16/66014.aspx

Vielen Dank,
bernett

04.11.2008 - 15:05 Uhr

Hallo,

vielen Dank für die schnelle Antwort. Ich benutze "System.Web.Services".

Ich bemerke gerade, dass ich die Frage etwas verdreht formuliert hatte. Was mich im Prinzip stört ist, dass jegliche Zahlenwerte ein "musthave" sind. Die Id und der Profit lassen sich nicht auf minOccurs="0" ändern. Zumindest nicht mit dem Attribut: XmlElement(IsNullable = true).

Wenn ich das verwende, kompiliert meinen Webservice nicht mehr fehlerfrei.

Methodenkopf:


public bool addWorker(int id, string nachname, string vorname, [XmlElement(IsNullable = true)] float profit)

Browser teilt mir folgendes mit:
Die Ressource kann nicht gefunden werden.

Sobald ich das Attribut entferne geht es wieder.

Grüße,
bernett

04.11.2008 - 13:24 Uhr

Hallo zusammen,

ich habe mir eine Testanwendung mit Webservices geschrieben. Diese besitzt auch die Methode:


public bool addWorker(int id, string lastname, string firstname, float profit)

in der erzeugten WSDL-Datei werden die Parameter folgendermaßen angezeigt:


<s:element minOccurs="1" maxOccurs="1" name="id" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="nachname" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="vorname" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="profit" type="s:float"/>

Wie hier:

WSDL unvollständig

bereits erwähnt, wird wohl ein String automatisch als optioneal (minOccurs="0") gekennzeichnet. Wie kann ich dieses Verhalten ändern?

Hier:
http://stackoverflow.com/questions/154554/minoccurs0-on-required-parameters-in-wsdl-on-aspnet-web-service

wird von einem XmlElement(IsNullable = true) Attribut geredet, was jedoch bei mir nicht funktioniert.

Als Alternative hierzu, wie lege ich mir meine WSDL manuell an? Habe bis jetzt nur mit der automatischen Variante gearbeitet.

Grüße,
bernett

23.10.2008 - 13:45 Uhr

Hallo Jürgen,

vielen Dank für den Link. Einige von den Ergebnissen waren mir natürlich auch vertraut und sind sicherlich hilfreich. Jedoch finde ich sehr viele Infos, die bereits betagt sind (2002-2004 ca.).

Gerade im Bereich Webservice / SOAP(1.1-->2000/1.2-->2007) / WSDL(1.1-->2001/2.0-->2007) usw. hat sich doch einiges getan. Deshalb meine frage nach aktueller Doku und Tutorials. 😉

Im Prinzip geht es um den Einsatz von Webservices im Zusammenspiel mit Visual Studio 2008 und dem IIS. Infos zu SOAP, WSDL etc. konnte ich mir bereits durch die Spezifikationen und die w3c-Homepages erarbeiten.

Grüße,
bernett

23.10.2008 - 12:56 Uhr

Hallo zusammen,

ich benötige für meine Diplomarbeit diverse C# Webservices (SOAP). Nach etwas Recherche bin ich leider noch immer auf keine ordentlichen und vor allem aktuellen Dokus, Bücher oder Tutorials gestoßen. Ich habe zwar Beispiele von älteren Webservices, jedoch möchte ich nicht nur auf copy&paste im Rahmen der Arbeit vertrauen, sondern mir gerne auch das nötige Hintergrundwissen aneignen.

Auch Links zu weiteren Codebeispielen wären hilfreich.

Danke und Grüße,
bernett

03.06.2008 - 01:01 Uhr

Keiner mehr eine Idee? :\

30.05.2008 - 13:38 Uhr

Hallo talla,

ich habe das erste Problem gefunden. Die FlowDocumentScrollviewer befinden sich nicht in meinem Window Element sondern in einem UserControl Element, welches dann im Window eingefügt wird.

Ich hatte die Zuweisung also im Konstruktor des UserControls gemacht und dies ging scheinbar nicht. Ich habe nun zu testzwecken das ganze in eine Methode gepackt und rufe dies vor meiner eigentlichen Verarbeitung auf.

Was ich nicht ganz verstehe, wo bekommst du die Windows_Loaded Methode her? Diese existiert auch in meiner Window Klasse nicht und in der Doku finde ich dazu auch nichts. Ich dachte sämmtlichen Initialisierungen finden in der "InitializeComponent()" Methode statt.

Naja, das Problem ist jedoch, das dies noch nicht das eigentliche Problem mit den abgeschnittenen Texten löst. Ich hänge mal einen Screenshot an, um das Problem zu verdeutlichen. Es sieht nun genauso aus wie vor der Umstellung von Scrollviewer auf Flowdocumentscrollviewer.

Grüße,
bernett

ps: noch mal zur Erklärung des alten Fehlers, die Flowdocumentscrollviewer waren zu der zeit, als ich diese im Konstruktor benutzt hatte noch nicht vorhanden und somit bekam ich nur null als Scrollviewer zurück.

28.05.2008 - 18:46 Uhr

Hallo talla,

erstmal vielen Dank für deine Bemühungen, leider funktioniert der Code noch nicht so ganz.

Beim Starten der Anwendung bekomme ich eine:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

Exception.

Ich habe den Fehler auch etwas eingegrenzt. Ich habe deine Zeilen:

(sv1 = fdsv_old.Template.FindName("PART_ContentHost", fdsv_old) as ScrollViewer).ScrollChanged += new ScrollChangedEventHandler(sv1_ScrollChanged);
(sv2 = fdsv_new.Template.FindName("PART_ContentHost", fdsv_new) as ScrollViewer).ScrollChanged += new ScrollChangedEventHandler(sv2_ScrollChanged);

aufgeteilt in:



      sv1 = fdsv_old.Template.FindName("PART_ContentHost", fdsv_old) as ScrollViewer;
      sv2 = fdsv_new.Template.FindName("PART_ContentHost", fdsv_new) as ScrollViewer;
        
      sv1.ScrollChanged += new ScrollChangedEventHandler(sv1_ScrollChanged);
      sv2.ScrollChanged += new ScrollChangedEventHandler(sv2_ScrollChanged);

Der Fehler Tritt in Zeile "sv1.ScrollChanged += ..." auf. Also bei der Registrierung des Events.

Grüße,
bernett

26.05.2008 - 18:15 Uhr

Hallo,

danke erstmal für die Antwort. Ich hatte auf vor, es mit den FlowDocumentXXX - Elementen vor zu realisieren. Das problem daran ist, wie kann ich dann die 2 Fenster (es handelt sich um eine Diff-Anwendung also 2 Textdateien in 2 Scrollviewern nebeneinander) parallel scrollen?

Es gibt hier im Forum zwar Tipps zum synchronen Scrollen von ListViews usw. aber leider noch nicht zu den FlowDocument-Elementen.

Grüsse,
bernett

26.05.2008 - 13:04 Uhr

Hallo,

ich habe ein Problem beim "verlinken" zweier Scrollviewer.

Das Scrollen selbst habe ich über:


public void sv_2_scroll(object sender, ScrollChangedEventArgs e)
    {
      sv_2.ScrollToVerticalOffset(sv_1.VerticalOffset);
      sv_2.ScrollToHorizontalOffset(sv_1.HorizontalOffset);
    }

    public void sv_1_scroll(object sender, ScrollChangedEventArgs e)
    {
      sv_1.ScrollToVerticalOffset(sv_2.VerticalOffset);
      sv_1.ScrollToHorizontalOffset(sv_2.HorizontalOffset);
    }

realisiert. Diese Methoden werden über:


      sv_1.ScrollChanged += new ScrollChangedEventHandler(sv_2_scroll);
      sv_2.ScrollChanged += new ScrollChangedEventHandler(sv_1_scroll);

Das Verschalten hat also schon geklappt. Mein Problem ist nun, dass von meinen Dokumenten immer ein Teil abgeschnitten wird.

gefüllt werden die Scrollviewer über:


     FlowDocument parsedDocObject = (FlowDocument)XamlReader.Load(xmlReader);

      sv_new.Content = parsedDocObject;

gesteuert.

Das Problem ist nun, dass bei längeren Zeilen immer ab einer gewissen länge abgeschnitten wird. Je nach Zoom des Scrollviewers sind das mehr oder weniger. Es liegt also wohl an der Darstellung mit dem Scrollviewer.

Eine Möglichkeit wäre schonmal den Zoom auf minimal zu fixieren und die Menüleiste des Scrollviewers auszublenden. Allerdings habe ich hierfür noch keine Einstellungsmöglichkeiten gefunden. Ist dies überhaupt möglich?

Alllerdings wird dies noch nicht ausreichen. Es werden nämlich nicht alle Zeichen die nicht in das erste Fenster (also beim ersten Programmstart) passen abgeschnitten, sondern einfach irgendwo relativ weit unten/rechts.

Hoffe es kam rüber was das Problem ist. Danke schon einmal,
bernett

16.05.2008 - 14:38 Uhr

Vielen Dank!

Genau so etwas habe ich gesucht. 🙂

Grüße,
bernett

15.05.2008 - 18:39 Uhr

Hallo,

ich versuche nun schon eine Weile mit WPF eine Anwendung mit 2Scrollviewern, 1Menu und 1-2Buttons zu erstellen.

In Windows Forms war das irgendwie angenehmer und intuitiver.

Mein Problem ist also das fehlende "anchor".

Ich habe hier auch schon im Forum gesucht und dort Hinweise auf "margin" gefunden. Jedoch bringt mich dies nicht weiter, da ich nichts skalierbar machen kann ausser das Window selbst.

Vorhaben:
Um meine Anordnung einzuhalten hatte ich vor, ein StackPanel auf die Form zu legen, dann das Menu einzufügen (soll ganz typisch oben sein). Dann ein Grid unter das Menu (innerhalb des StackPanels).

In diesem Grid würde ich dann die beiden ScrollViewer und den Button einfügen.

Dies hab ich nun auch soweit fertig. Jedoch vergrößert sich mein StackPanel nicht, wenn ich mein Fenster skaliere. Ich habe Width und Height des StackPanels auf "Auto" und H-Alignment auf "left", V-Alignment auf "top" um meinen Menu-Balken auf jeden Fall oben links zu halten.

Grid und Menu sind ebenfalls "Auto" als Größenangabe und Alignment auf "Stretch".

Danke im Vorraus,
bernett

04.05.2008 - 14:00 Uhr

[Lösung] Problem mit EventHandler

hat mein problem gelöst. dachte schon ich werde das nie verstehen. 🙂

vielen dank,
bernett

03.05.2008 - 00:16 Uhr

danke voerst, ich habe nun mit events experimentiert. zur vorgehensweise:

model: meine klasse "results" wurde zu "results : EventArgs"

View: altes menü wurde unverändert beibehalten

controller(keine neue klasse angelegt, ich habe die anpassungen in meinem vorhandenen controller vorgenommen):
delegate angelegt
event angelegt

dieser part hier müsste dann meinem empfinden der view zugeordnet werden:
neue klasse "actgui" angelegt.
diese bekommt im konstruktor ein objekt meines controllers übergeben (in meinem fall übergebe ich this, da ich diese aus dem controller aufrufe)
hier befindet sich dann auch die methode "printresults" und ich durchlaufe mein result-array und schreibe auf konsole.

funktionieren tut das auch soweit. nur versteh ich den sinn noch nicht ganz. ist meinem empfinden nach noch immer nicht großartig anders als ein methodenaufruf.

wie funktioniert das dann, wenn ich eine gui mit win-forms baue und die statt der konsole nutze. greife ich dann auf meine "actgui" klasse zu um mir die ergebnisstrings zu holen?

ist etwas spät heute. ich werde mir das morgen und am sonntag nochmal ansehen. aber evtl kann mir ja jemand sagen ob das prinzip so ok/sauber ist. die beispiele im galileo book und in der ms-doc passten leider nicht so ganz auf mein programm.

danke und gute nacht,
bernett

02.05.2008 - 19:44 Uhr

Guten Tag,

auch ich müsste für die Schule ein Konsolen-Programm nach der 3-Schichten Architektur realisieren.

Das Programm ist soweit fertig. Mein Problem ist nun, dass ich im Controller eben noch Console.WriteLines("..."); habe, bei denen ich nicht so recht weiss, wie ich diese in die View "anheben" soll. Bei Methoden, die ganz klar true/false zurückgeben können ist dies ja kein Problem. Aber gerade wenn dann Threads ins Spiel kommen wird es interessant.

Die Konsole soll z.B. während der Berechnung eines Wertes weiterhin ansprechbar sein. (was auch funktioniert) und nach dem Berechnen soll ein Menü ausgegeben werden. Wie kann ich hier das Drucken des Menüs in die View bringen. Der Controller soll ja auch die View nicht ansprechen wenn ich da richtig informiert bin.

Danke,
bernett

//Edit: Ein weiteres Beispiel wären Zwischenergebnisse, die während laufendem Thread ausgegeben werden sollen.
wert a berechnet.
wert b berechnet.
.
.
.
usw.

20.04.2008 - 12:43 Uhr

Hallo zusammen,

ich müsste für ein Projekt (Studium) ein XML-File mit einem der WPF-Controls

-FlowDocumentScrollViewer
-FlowDocumentReader

anzeigen. Ich habe nun die MSDN Doku studiert, jedoch finde ich nichts im Sinne einer TreeView.

Aufgabe 1 wäre erstmal nur, ein eingelesenes XML-File anzuzeigen (nicht nur die Daten, sondern auch die Tags)

Aufgabe 2 wäre es, die Knoten aufklappbar zu gestalten.

Falls es eine einfachere Alternative (zur not auch ohne WPF) gibt, wäre ich auch nicht abgeneigt, jedoch hatte der Projektleiter explizit diese Controls vorgeschlagen.

Grüße,
bernett

14.08.2006 - 17:54 Uhr

.. gelöst, manchmal kann es so einfach sein.

exception abfangen und gut! 🤔

mfg,
bernett

14.08.2006 - 17:36 Uhr

hi,

ich hätte ebenfalls eine frage zum übergeben einer variablen. ich linke aus einem datagrid auf details.aspx mit einer variable p_id.

link sieht also zum beispiel so aus:
detail.aspx?p_id=33497

auf der detail seite lese ich in der page load so aus:

if((Request.QueryString["p_id"].ToString() != null)&&(Request.QueryString["p_id"].ToString() != ""))
string xyz = Request.QueryString["p_id"].ToString();

das klappt auch alles prima, so lange ich von dem datagrid aus auf die seite verlinke. wenn ich aber nun von einer anderen seite die seite aufrufe, bei der keine p_id übergeben wird. sagt er mir, dass das objekt noch nicht vorhanden ist. was ja auch irgendwo verständlich ist. allerdings dachte ich, dass dies über

Request.QueryString["p_id"].ToString() != null

abgedeckt sei..

mfg
bernett

03.08.2006 - 17:07 Uhr

falls mal einer ähnliches problem hat:
http://www.codeproject.com/useritems/FreezeHeader.asp

löst dieses! 🙂

custom control (ähnlich datagrid) um spalten und zeilen zu fixieren!

mfg,
bernett

03.08.2006 - 13:45 Uhr

hallo,

ich habe eben sourcegrid2 entdeckt und wollte dies nun mal antesten.

habe also zu meinem bestehenden objekt das sourcegrid2 projekt hinzugefügt, und bei webforms "grid" und "virtual grid" über die SourceGrid2.dll hinzugefügt. leider sind die icons in der toolbox immer grau :\ hat wer ne abhilfe?

mein projekt besteht aus aspx seiten in c#.

mfg,
bernett

//edit: ok grad gesehen.. scheint wohl nur mit windows forms zu gehen! 🙁

29.07.2006 - 21:12 Uhr

bräuchte genau so eine funktion. momentan ist es mit tabellen gelöst, allerdings könnte ich das auch für ein datagrid umschreiben. oder halt für komponenten die so eine möglichkeit bieten.

wichtig wäre halt, dass die erste spalte und die erste zeile immer sichtbar bleibt.

mfg,
bernett

26.07.2006 - 15:09 Uhr

hallo,

ich habe 2 ddl´s, welche in der pageload (einmalig also !ispostback) gefüllt werden. die auswahl läuft folgendermaßen:

private void ddlProjekt_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			Session["ddlZuteilung"] = "projekt";
		}

private void ddlStelle_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			Session["ddlZuteilung"] = "stelle";
		}

in der pageload wird dann durch die sessionvariable ausgewählt, welche ddl anzupassen ist. also wird die projektliste durch klick verändert, wird stellenbeschreibungliste angepasst und andersrum.

das alles klappt eigentlich auch. nur kommt der autopostpack der ddl´s erst nach der pageload.

also es wird ja immer erst die seit nochmal aufgerufen (warum verstehe ich auch noch nicht..). dann kommt der klick event und dann sollte die pageload doch ein erneutes mal aufgerufen werden. dies passiert leider nicht. somit wird zwar die sessionvariable gesetzt, aber erst bei der 2. änderung an der ddl wird auch das richtige ausgewählt.

mfg,
bernett