Laden...

Forenbeiträge von schuppsl Ingesamt 789 Beiträge

10.09.2008 - 08:43 Uhr

..geht das?

Eine Javascript Funktion geht, mit dem OnClick-Event, das ist schon klar.
Aber wenn ich eine Seite habe, die von einer Masterseite abhängt, also in einem Placeholder, kann ich da eine C# Funktion aufrufen, wenn ich auf einen Button Clicke?

Also so:


<asp:Content ID="Content1" ContentPlaceHolderID="content" runat="server">

<form method="post" title="form" name="form" action="intern/eingang.aspx">
<input type="submit" id="b_KO" onclick="MEINEC#FUNKTION()" title="Kommenbuchung" name="Kommen" />
</form>

</asp:Content>

Grüße schuppsl

19.08.2008 - 12:47 Uhr

Nunja, ich habe eine kleine Benutzerverwaltung.
beim Login wird die Guid in eine XML Datei gespeichert.
Beim Logout wird diese wieder aus der Datei gelöscht.

Was, wenn nun 100 User am Tag nicht den Logout Button klicken, sondern den Browser einfach schließen, dann stehen da 100 sinnlose Einträge drin.
Also dachte ich, wenns da etwas gibt, das die Schließung des Browsers erkennt, dann kann ich den Entsprechenden Eintrag löschen...
Daß es so etwas nicht gibt, dachte ich mir schon, aber man weiß ja nie...

19.08.2008 - 11:31 Uhr

Beides. Ein Tab ist ja auch nur ein quasi-Browserfenster.

19.08.2008 - 11:19 Uhr

Hallo.

Kann man irgendwie feststellen, ob ein Browserfenster geschlossen wurde?

19.08.2008 - 09:48 Uhr

Ja das habe ich und es wird diese Zeile beanstandet.

Ich habs nun mal verändert:



    var AktuelleGuid = from a in leseSample.Elements() where (Guid)a == myGuid select s;

Abgesehen davon, daß die Abfrage anders ist, habe ich den Fehler gemacht, daß ich

a.Element("GUID").Value

geschrieben habe.

a.Element("GUID").Value gibt es anscheinend nicht.
Warum, daß muss ich jetzt noch herausfinden, wird an meiner XML Datei liegen.

Vielen Dank für die Hilfe und den Link. Werde ich mir merken
(Überhaupt die ganze Faq)
Ich hoffe eines Tages hier mal was zurückgeben zu können.
Grüße schuppsl

19.08.2008 - 09:24 Uhr

Hallo herbivore.
Vielen Dank für Deinen aufschlußreichen Link.
Sehr interessant, man kann immer nur dazulernen.

Doch leider konnte ich den Fehler trotzdem nicht lokalisieren.
Es ist kein übergebens Argument null und auch sonst ist nichts null.
Darum verstehe ich das Ganze auch nicht.

Kannst Du denn anhand vom Code sehen, was da falsch sein soll?
Ich jedenfalls nicht...

Hier die Ausnahmedetails:

System.NullReferenceException wurde nicht von Benutzercode behandelt.
Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Source="Basisklasse"
StackTrace:
bei Sample.SampleGuid.GetGuid(Guid myGuid, Object myObject) in E:\test\Basisklasse\Basisklasse\App_Data\XML.cs:Zeile 44.
bei WebAppDemo._Default.btnLogin_Click(Object sender, EventArgs e) in E:\test\Basisklasse\Basisklasse\Default.aspx.cs:Zeile 38.
bei System.Web.UI.WebControls.Button.OnClick(EventArgs e)
bei System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
bei System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
bei System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
bei System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:

19.08.2008 - 08:52 Uhr

Hi, das habe ich schon.
Die XML Datei wird aufgerufen und komplett eingelesen und in a steht sogar das erste Element drin...

19.08.2008 - 08:39 Uhr

Hello Community.

Ich versuche mich gerade mit Linq to XML.
Generell kein Problem, aber an einer Stelle komme ich einfach nicht weiter.

Ich möchte eine XML Datei auslesen und mit einem vorhandenen Wert vergleichen:



            var leseSample = XElement.Load(myObject.ToString() + "sample.xml");
            
            string checkGuid="";
            
            foreach (XElement a in leseSample.Elements())
            {
               XElement x = new XElement(a.Element("GUID").Value);
         }


So, und in der Foreach Schleife hängts.
Da kommt immer die Fehlermeldung:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

Prinzipiell ist mit die bedeutung dieser Meldung klar, aber in diesem Falle eben nicht.
Von was soll ich denn da eine Instanz bilden?
Ich habe das Beispiel von einer Seite im Internet und in meinem schlauen Buch ist es auch so abgebildet.

Also was ist da falsch?
abs auch schon so probiert:



checkGuid = a.Element("GUID").Value;


Dann kommt aber diesselbe Meldung.
Grüße schuppsl

15.08.2008 - 11:09 Uhr

Also was ich an dem Beispiel (Link oben ) noch nicht verstanden habe:

Es wird je bei jedem Request geprüft, ob die Guid vorhanden ist, durch abgleich mit dem Session Cookie.
Dies geschieht in einer Beispielhaften Klasse in der die Guid immer gleich ist.
Was, aber wenn ich nun 100 User habe und somit 100 Guids vergebe?
Dann brauche ich doch irgendeinen globalen Guid-Pool der während der Gesamten Laufzeit des Applikation existiert, mit dem ich die eingehenden Requests abgleichen kann um den Request auf gültigkeit zu prüfen.

Oder was habe ich da noch nicht geschnallt?

EDIT:
Bin gerade selbst draufgekommen, ich lese die Guid ja dann aus zB. Datenbank raus..

15.08.2008 - 10:05 Uhr

Welche ID denn?

Des Strings?
Das ist die richtige...

15.08.2008 - 09:53 Uhr

Hallo Community.
Ich möchte nen text aus einer globalen Ressource Datei auslesen.

Habe also eine REssource Datei angelegt im Ordner App_GlobalResources Namens "de_de.resx"

Möchte ich nun ein darin enthaltener String auslesen:


ErrorText = (string)(System.Web.HttpContext.GetGlobalResourceObject
                        (@"App_GlobalResources\de_de.resx", "IDS_ANMFALSCH"));

Kommt die folgende Fehlermeldung:

Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass Resources.E:\xxx\xxx\xxx\App_GlobalResources\de_de.resx.resources beim Kompilieren richtig in die Assembly App_GlobalResources.ojrf8rra eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden können und vollständig signiert sind.

Ist ja ein sehr langer Text, aber ich verstehe nun überhaupt nicht um was es da geht.

Wie kann ich die Ressource korrekt auslesen?

15.08.2008 - 09:41 Uhr

Ja das werde ich dann machen...

12.08.2008 - 13:34 Uhr

Vielen herzlichen Dank!
Eure Antworten haben mich schon sehr viel weiter gebracht!

12.08.2008 - 12:33 Uhr

du könntest die socket Abfragen für einige Minuten cachen

Und wie geht das?

Vielen Dank für die Antworten.

12.08.2008 - 12:08 Uhr

Also die Beispiele sind ja sehr gut und ich denke ich habe das meiste verstanden.
Es wird also bei jeder Seite, die von der Basisklasse (BasePage) erbt automatisch beim Page_init event geprüft, ob der User existiert.

Soweit richtig?

Das heist aber auch, daß ich bei jedem einzelnen Seitenaufruf, also bei jedem Mausklick, per LoadUser prüfen muss, ob der User vorhanden ist.
Im Beispiel geschieht das mittels der Dummy Klasse.
Richtig?

In meinem Fall aber muss ich jedesmal eine Socketabfrage zur Software durchführen, was bei vielen Seiten mit vielen Usern irgendwann eine riesige Netzwerklast auslöst.
Dasselbe gilt für den Fall, daß die Userdaten in einer Datenbank gespeichert sind.

Ist das nicht zu aufwändig oder habe ich da noch was falsch verstanden?

12.08.2008 - 11:09 Uhr

Nun, ich möchte die Daten im Array persistent im Arbeitsspeicher halten, damit ich den User identifizieren kann:

Also beim Login wird eine Session erstellt.
Bei erfolgreichem Login bekomme ich von einer Software mehrere Informationen über den User( per Socket), diese möchte ich , zusammen mit der SessID, in diesem Array speichern.

Kommt der nächste User , wird das Zeug einfach in den nächsten freien PLatz im Array gespeichert und natürlich beim Logout wieder gelöscht.

Kommt nun eine Anfrage von einem Browser, muss dieser User identifiziert werden.
Dies geschieht dann anhand der SessID, welche ich auslesen kann.
Diese wird dann mit dem Array verglichen und somit weiß, ich daß der User überhaupt existiert und angemeldet ist.
Je nach Berechtigungen, welche auch im Array stehen kann der User dann die entsprechende Funktionen ausführen oder auch nicht.

Kann ich das auch mit einer Basisklasse machen?
Oder welche vorgehensweisen gibts bei so einem Problem?

Danke schuppsl

12.08.2008 - 10:04 Uhr

Hallole.

Ich habe eine asp.net (3.5) Seite. In dieser habe ich eine Klasse definiert welche in der Gesamten Anwendung sichtbar sein sollte.
Es handelt sich dabei um eine Art Userverwaltung.
Ich möchte von der Klasse ein Array erstellen und der User bekommt dann einen "Platz" in dem Array bein erfolgreicher Anmeldung.

Damit ich jederzeit auf dieses Array, von jeder Seite aus zugreifen kann, sollte es global sein.
Der User wird dann identifiziert (session), mit dem Array verglichen und seine Einstellungen aus dem Array ausgelesen.

Das Array deklariere ich so:


CUserverwaltung[] cu = new CUserverwaltung[10];

Wo soll ich das nun hinmachen, damit es in der Gesamten Anwendung sichtbar und somit ansprechbar ist?

Danke schuppsl

11.08.2008 - 11:53 Uhr

Ja geht, vielen Dank für die Wachrüttelung.

11.08.2008 - 11:29 Uhr

aber dvd ist doch eine Funktion?

11.08.2008 - 11:22 Uhr

Hallole.
Ich tippe gerade ein Beispleil zur DVD Verwaltung aus der aktuellen ct ab.
Das Beispiel ist in vb gehalten, ich möchte das aber mit c# machen und scheitere nun ein ein paar Zeilen Code.
Vielleicht liegts auch daran, daß ich zu lange im Urlaub war, aber ich habe probleme mit get und set.

Hier mal der Code:


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class controls_dvdcollectionl : System.Web.UI.UserControl
{    

    private dvd[] _dvds ; //Array von dvd Objekten
    private DataClassesDataContext _dataContext;

    public dvd[] dvds()
    {
       
        get{ return _dvd; }
    }

      
}

Also in der get-Zeile gibts probleme.
Der Comiler meckert, daß ein Semikolon fehlt und zeigt auf get.
Auch wenn ich get oder set eintippen will kann ich das aus dem Intellisense nicht auswählen da es nicht vorhanden ist.
Ich muss zuerst die Klammern setzten und dann das get davor schreiben da mit der immer das Erste aus der Intellisense Liste automatisch eingefügt wird.

Was stimmt denn hier nicht?

08.07.2008 - 16:59 Uhr

Vielleicht hilft Dir das hier weiter:

http://msdn.microsoft.com/de-de/library/system.web.httprequestvalidationexception(VS.80).aspx

Aber meines erachtens ist diese, zwar nette,Funktion ziemlich sinnlos.
Hat einer Zugriff auf den Server, braucht er nur in der Web.config den Wert auf

<pages validateRequest="false" />

Ändern, und schon ist die Überprüfung dahin.
Habs getestet, es funktioniert.

Dann lieber eigene implementierungen verwenden oder bei jeden Seiten aufruf die Web.config aus einer verschlüsselten Datei wiederherstellen...

08.07.2008 - 13:26 Uhr

Bitteschön:

Fehler 7 Der csc /target:library /out:Userverwaltung.dll "E:\test\Konten\Konten\App_Data\Userverwaltung.cs-Befehl wurde mit Code 9009 beendet. Konten

08.07.2008 - 11:32 Uhr

...hatten wir hier ja schon öfters.
Es scheint, als fände der Compiler entweder den Befehl oder die Datei nicht.
Aber selbst wenn ich den absoluten Pfad zur Datei angebe kommt dieser Fehler.

Der Befehl lautet:


csc /target:library /out:Userverwaltung.dll "E:\test\Konten\Konten\App_Data\Userverwaltung.cs"

Ich habe das in die "Befehlszeile für Postbuildereignis" eingetragen.

Was ist daran noch falsch?
Userverwaltung.cs ist eine ganz normale .cs Datei in meinem **ASP.NET (2.0) **Projekt.

Grüße schuppsl

07.07.2008 - 14:16 Uhr

Ja da habt Ihr wohl recht...so werde ichs machen.

07.07.2008 - 13:52 Uhr

du kannst doch in der session vom httprequest den dns namen und die ip der clientmaschine speichern und bei jedem aufruf überprüfen (obwohl ich glaube das das asp intern auch macht) und schon kann man mit dem cookie auf einem anderen rechner ncihts mehr anfangen.

Ja, genau das wäre eine vorhin genannte Vorgehensweise.
Wird denn die IP immer ausgelesen oder gibts da irgendwelche Beschränkungen, zb. wenn ich die "NoScript" Erweiterung aktiviere, Javascript oder sonstwas deaktiviere im Browser?
Geht das auf jedem Linux/Mac OS System?

Müsste man mal testen...

07.07.2008 - 13:50 Uhr

Warum? Prinzipiell kann ich genau dafür nichts, da ist der Chefe selbst schuld.
Aber du glaubst doch nicht wirklich, dass du deinen Arbeitsplatz behältst wenn du Daten vom Rechner des Chefs klaust.

Nein natürlich nicht, ich hatte das Ganze jetzt aus der Sicht des ASP-Programmierers gesehen, nicht vom "Bösesicht".

ich habs nochmal genau getestet, es geht auch von einem anderen PC aus, wenn die Session ID kopiert wird.
Ich hatte lediglich vergessen, das localhost gegen die IP meines Rechners auszutauschen.

Also es geht ganz einfach indem man die Sess ID kopiert, bzw. irgendwie auf nen anderen Rechner bringt.

07.07.2008 - 13:26 Uhr

Diese kann ich mir zb. aufschreiben, falls der Chefe mal schnell vom PC weg ich (und noch eingeloggt ist) und mir ein eigenes Cookie mit der SessID anlegen.

  1. kann ich mir gut vorstellen, dass das deine letzte Aktivität für diese Firma war wenn man es herausbekommt.
    2

Warum? Prinzipiell kann ich genau dafür nichts, da ist der Chefe selbst schuld.

Also ich habs nochmal getestet.
Kopiere ich mir die URL und gehe auf einen anderen Rechner, geht es nicht, es kommt die Meldung "Verbindung fehlgeschlagen".

Also scheint ASP.NET diese Sicherheit irgendwie mit eingebaut zu haben, oder woran liegt das.
Ohne die SessID kann ich die Anwendung natürlich aufrufen...

07.07.2008 - 12:50 Uhr

Die Version war bereits die richtige.

Ja mit "Anwendung erstellen" hat es dann funktioniert.
Ich weiß zwar nicht was das ist, oder warum man das einstellen muss, aber so gehts zumindest lokal.

Vielen Dank für die kompetente Hilfe.

07.07.2008 - 12:25 Uhr

So ein EDIT:

Habe nun aspnet_regiis -i -enable ausgeführt und jetzt geht es.
Kriege allerdings folgende Meldung:

Konfigurationsfehler
Beschreibung: Fehler beim Verarbeiten einer Konfigurationsdatei, die für diese Anforderung erforderlich ist. Überprüfen Sie die unten angegebenen Fehlerinformationen, und ändern Sie die Konfigurationsdatei entsprechend.

Parserfehlermeldung: Einen Abschnitt, der als allowDefinition='MachineToApplication' registriert ist, über die Programmebene hinaus zu verwenden verursacht einen Fehler. Dieser Fehler kann von einem virtuellen Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist.

Quellfehler:

Zeile 17: ASP.NET eingehende Benutzer identifiziert.
Zeile 18: -->
Zeile 19: <authentication mode="Windows"/>
Zeile 20: <!--
Zeile 21: Der Abschnitt <customErrors> ermöglicht die Konfiguration

Quelldatei: C:\www\test\web.config Zeile: 19

Was bedeutet das?

Hallo schuppsl

Ja: Anwendung angelegt?

Gruss Peter

Wie ist das gemeint?
Habe die Anwendung aus dem Visual Studion heraus "exportiert" also alle erforderlichen Dateien sind vorhanden...

07.07.2008 - 11:47 Uhr

FF,der aktuellste und IE7 auf Win XP Prof.
Aber kann es sein, daß generell eine Sess.ID erzeugt wird, unabhängig von Session.Add?
Ich denke das wird der Fall sein.

07.07.2008 - 11:42 Uhr

autsch, das ist böse.
Der Bösewicht muss in dem Fall aber immernoch zugriff auf den Rechner haben...

Ja das muss er.
Das Ganze wird ja auch noch mit Name/Passwort gesichert, aber wenn der böse Mann mal schnell an Chefs Rechner geht, kann das locker ausgehebelt werden.
Der Chef ist dann natürlich selbst Schuld, wenn er die Anwendung nicht beendet.

Ich denke, am Besten wirds sein, die SessID an Request.UserHostAdress zu koppeln.
Aber ist dann natürlich auch leicht manipulierbar.

07.07.2008 - 11:36 Uhr

Ja also ich kriegs einfach nicht hin.
Berechtigungen sind alle auf Vollzugriff, die ASP Version (2.0 ) stimmt auch.
Was könnte das denn sein?

07.07.2008 - 11:17 Uhr

Also ich habs nun getestet, zumindest wenn ich die SessID über die URL transferiere.
Kopiere ich die SessID auf einen anderen PC/Browser werden mir die gespeicherten Daten,in diesem Fall der Name angezeigt.
Somit würden auch eventuelle Berechtigungen die ich diesem User zuweise übertragen werden.

07.07.2008 - 10:51 Uhr

Das steht drin:
Name ASP.NET_SessionId
Value: dicikjezkepf3454n0vf45...
Host: Localhost
...
Secure: no
Expires: end of Session

Werds mal ausprobieren.

07.07.2008 - 10:15 Uhr

Temporäre Cookies und SessionIDs werden vom Browser nur im Arbeitsspeicher gehalten und nicht wie normale Cookies als Textdatei auf der Platte abgelegt.

Wenn ich aber eine neue Session per Session.Add anlege, wird da ein Cookie als Textdatei angelegt...

Eine SessID kann man somit ganz leicht auslesen, zumindest kann ich in jedem Browser die SessID ansehen.
Diese kann ich mir zb. aufschreiben, falls der Chefe mal schnell vom PC weg ich (und noch eingeloggt ist) und mir ein eigenes Cookie mit der SessID anlegen.
Diese Session wäre ja dann noch nicht abgelaufen...würde so etwas gehen?

07.07.2008 - 10:00 Uhr

Welche "Tricks"wären denn das?

Ja, er hat die Identität und auch somit die Daten die an diese Indentität gekoppelt sind.
Klar ist alles irgendwie unsicher, ich möchte mir eben auch sicher sein, daß ichs richtig verstanden habe und dann entsprechend programmieren kann.

Der Angreifer muss ja das Cookie klauen so lange die Session noch gültig ist.

Eine alternative wäre, wie bereits oben beschrieben, die IP auszulesen und an die SessID koppeln, aber da weiß ich nicht., ob das bei jedem Linux oder Mac OS geht, da diese OS'ses Clientseitig durchaus zum Einsatzgbebiet kommen werden...

07.07.2008 - 09:48 Uhr

Aber um die Daten zuzuordnen muss aus dem -wenn auch temporären- cookie die SessID ausgelesen werden.
Wird die SessID manipuliert, bzw. auf einen anderen PC übertragen und dort als cookie gespeichert, hat der User alle Daten...und eben im schlimmsten Fall kann er sich dann als Admin einloggen, da er ja die Sess ID hat...

04.07.2008 - 11:39 Uhr

Hallo schuppsl

Ja aber Sessions funktionieren aber auch mit Cookies, also genau dasselbe.
Nein, dann hast du scheinbar meine Link nicht gelesen / verstanden.

Gruss Peter

Aber das schreibst Du doch selbst:

Ein Session ist ein temporäres Cookie auf deinem PC,

Und wenn ich in dieser Session Daten vom Benutzer speichern will, wird das sehr wol in einem Cookie gespeichert...

04.07.2008 - 11:00 Uhr

Ja aber Sessions funktionieren aber auch mit Cookies, also genau dasselbe.
Cookies sind zu einfach manipulierbar.

Profiles ist nicht machbar, da ich den User aus einer verschlüsselten Datei auslese.

Was gäbe es für alternativen?

Unsicher ist das nicht wirklich, da brauchts schon einigen Aufwand und schlechte Programmierung damit da was schiefgeht.

Ich stelle mir ein Büro vor indem ein Abteilungsleiter mehr Rechte in der Webanwendung als die Mitarbeiter hat.
Loggt sich der Abteilungsleiter ein, bekommt ein cookie, geht mal 3 minuten weg vom PC, der Mitarbeiter geht schnell hin, kopiert sich das Cookie auf seinen Rechner und schon hat er Zugriff als Abteilungsleiter.

Deswegen keine cookies.

04.07.2008 - 10:46 Uhr

Hallole.

Ich hatte früher einiegn Anwendungen als ISAPI-DLL programmiert.
Da gab es eine einmalige Verbindungs-ID zwischen dem Browser und dem Server.
Diese konnte ich dann abfragen und prüfen, ob die Anfrage auch zum richtigen Browser/Client gehört.
Leider konnte ich so etwas in asp.net noch nicht finden.
Gibts da so etwas?

Danke schuppsl

03.07.2008 - 10:39 Uhr

Es geht eben um folgendes:

In dem bisherigen Programm konnte man per "Mehrplatz" Zugriff aus verschiedenen Instanzen auf verschiedenen Datensätze gleichzeitig zugreifen. Auch wenn diese in derselben Datei stehen, da immer nur der bestimmte Datensatz verändert wird.

In C# mit den ganzen Streams geht das nicht mehr.
Ich kann immer nur die gesamte Datei auslesen.
Wird dann ein Datensatz verändert, wird die gesamte Datei neu geschrieben und der, der seine Änderung als erstes gemacht hat, hat eben verloren.

Dafür suche ich eingentlich eine Lösung...deshalb das Ganze...

03.07.2008 - 09:44 Uhr

Hallo Leute.

In einem früheren C-Programm hatte ich ein struct indem ich ein paar ints und einige Char-Arrays deklariert habe.

Mit dem operator sizeof konnte ich dann die exakte Größe dieses Struct ermitteln:



struct bla{
	char la[21];
	int io;
	char le[21];
	};

int erg= sizeof( bla);
int groesse = sizeof (int);


In C# hat ein string ja eine undefinierte Größe, bzw. wenn ich in einem struct einen string anlege, weiß ich ja nicht wie groß dieser ist und kann somit die größe dieses struct nicht ermitteln.
Kann man die (maximale ) größe eines String festlegen?
Es geht darum, daß ich die Daten aus dem Struct in eine Datei schreibe.
Ich schreibe dann immer an eine bestimmte Position, mit dieser in struct genau festgelegten Größe.

Das ermöglicht es mir mit einem wahlfreien Zugriff einzelne Datensätze aus einer Datei zu lesen und genau an diese Position wieder zu schreiben, ohne daß irgendetwas verschoben wird, da das struct immer gleich groß ist.

Gibts da eine Lösung dafür?

Danke schuppsl

02.07.2008 - 13:36 Uhr

Alles klar, vielen Dank.

02.07.2008 - 12:35 Uhr

Ja es muss eine Datei sein.

02.07.2008 - 10:39 Uhr

Hallole.

Ich hatte früher in einem C++ Programm eine Datei aus der ich an einer bestimmten Position einen Satz Daten (struct) gelesen habe und diese in einer Maske angezeigt habe.
Diese konnte ich dann ändern und per lseek wieder an die Stelle in der Datei reinschreiben.
Grund dafür ist, daß mehrere Personen, bzw. Instanzen des Programmes auf diese Datei zugriff hatten und verschiedene Datensätze (nicht den gleichen) gleichzeitig verändern konnten ohne daß der eine den anderen überschreibt.

Jetzt will ich das mit C# machen.
Leider ist es som, daß der BinaryWriter(serialisierung) immer die komplett Datei ausliest und diese dann auch komplett wieder reinschreibt.
Öffnet ein User als die Eingabemaske und verändert einen Datensatz und ein anderen gleichzeitig einen anderen, dann hat der gewonnen der als letztes schreibt, da immer die ganze Datei aus dem stream geschrieben wird.

Ich sollte also nur einen einzigen Datensatz lesen können und diesen wieder genau an die Stelle wieder zurückschreiben.

Wie kann man das lösen?

16.06.2008 - 12:35 Uhr

Der erste Link funktioniert nicht...

16.06.2008 - 10:20 Uhr

Hallo Community.

Ich habe eine ASP:NET Anwendung mit der ich per Socket mit einer Software kommuniziere.
Dazu erstelle ich eine Login Seite auf der Name und Passwort eingegeben werden.
Diese Daten werden dann per Socket zur Anwendung gesendet und geprüft, ob der User in der Software existiert.
Das geht einwandfrei.

Jetzt sollte ich eben diesen User über viele ASP Seite hin identifizieren können.
Per Cookie möchte ich das nicht machen, da mir dieses zu unsicher erscheint.
Ich denke jeder kann heutzitage ein Cookie kopieren und auf nen anderen Rechner Transferrieren und schon kann er sich mit nem Fremden User anmelden.

Also Cookie und somit FormsAuthentication fällt flach.

Was gibts noch für Möglichkeiten?
Ich könnte eine globale Struktur verwalten und Name, Passwort dort eintragen. Dazu müsste ich dann eben diese Daten von Seite zu Seite weitergeben und jedesmal mit der Struktur abgleiche, ob as der User ist oder nicht...aber das erscheint mir unnötig kompliziert.

Wie macht "man" das denn so?

Grüße schuppsl

13.06.2008 - 09:13 Uhr

Nun in der Standardwebsite,

Basisverzeichnis eingestellt, Scripts und Ausführbare Dateien, Lesezugriff, Scriptzugriff, ASp.NET 2.0...
Fehlt das noch etwas?

13.06.2008 - 08:51 Uhr

Guten morgen.

Ich habe mit dem Visual Studio eine kleine aspx Anwendung geschrieben.
Wenn ich Sie aus dem VS heraus starte funktioniert alles einwandfrei.

Starte ich das Ganze aber auf dem IIS 5.2 der bei Win XP Prof. dabei ist, dann kommt o.g. Fehlermeldung.

Ich schätze das liegt daran, daß der IIS 5 nur mit dem .NET Framework 2.0 umgehen kann, nicht aber mit 3.5 wie ich die Anwendung erstellt habe.

Kann das sein?
Ansonsten sind alle benötigten Dateien im Exportverzeichnis vorhanden.

Wie kann ich dann die Anwendung außerhalb des Visual Studio testen, wenn ich nur denIIS habe?Gibts nen anderen Webserver?

NACHTRAG: Ich habe nun die Anwendung mit .NET 2.0 KOmpiliert und veröffentlicht, genau diesselbe Meldung.

Danke mal schuppsl

05.05.2008 - 09:33 Uhr

*schieb*