data a XML   zodpovězená otázka

C#, ASP.NET WebForms, XML

Zdravim, mam takovou delsi a slozitejci otazku, doufam, ze se najde nekdo kdo by mi s tim vypomohl. Tak dost reci a hura na to...

protected void Odeslat_Click(object sender, EventArgs e)
    {
        string sRes = "";
        string sXmlSource = "";
        string M1, M2, M3, M4, M5, M6;
        M1 = M2 = M3 = M4 = M5 = M6 = "0";
        bool bProved = true;
        foreach (IValidator aValidator in this.Validators)
        {
            if (!aValidator.IsValid) { bProved = false; }
        }
        if (bProved & Email.Text != String.Empty & Jmeno.Text != String.Empty)
        {
            XXXAgent.Service XXXWS = new XXXAgent.Service();
            try
            {
                if (Ano1.Checked) { M1 = sCheckString(Pocet1.Text.Replace("'", "''")); }
                if (Ano2.Checked) { M2 = sCheckString(Pocet2.Text.Replace("'", "''")); }
                if (Ano3.Checked) { M3 = sCheckString(Pocet3.Text.Replace("'", "''")); }
                if (Ano4.Checked) { M4 = sCheckString(Pocet4.Text.Replace("'", "''")); }
                if (Ano5.Checked) { M5 = sCheckString(Pocet5.Text.Replace("'", "''")); }
                if (Ano6.Checked) { M6 = sCheckString(Pocet6.Text.Replace("'", "''")); }
                sXmlSource = sXmlSource + "<root>";
                sXmlSource = sXmlSource + " <command>XXX_OBJEDNAVKA</command>";
                sXmlSource = sXmlSource + " <lang>CZ</lang>";
                sXmlSource = sXmlSource + " <jmeno>" + sCheckString(Jmeno.Text.Replace("'", "''")) + "</jmeno>";
                sXmlSource = sXmlSource + " <firma>" + sCheckString(Firma.Text.Replace("'", "''")) + "</firma>";
                sXmlSource = sXmlSource + " <adresa>" + sCheckString(Adresa.Text.Replace("'", "''")) + "</adresa>";
                sXmlSource = sXmlSource + " <telefon>" + sCheckString(Telefon.Text.Replace("'", "''")) + "</telefon>";
                sXmlSource = sXmlSource + " <email>" + sCheckString(Email.Text.Replace("'", "''")) + "</email>";
                sXmlSource = sXmlSource + " <produkt_1_nazev>Podatelna</produkt_1_nazev>";
                sXmlSource = sXmlSource + " <produkt_1_pocet>" + M1 + "</produkt_1_pocet>";
                sXmlSource = sXmlSource + " <produkt_2_nazev>Výpravna</produkt_2_nazev>";
                sXmlSource = sXmlSource + " <produkt_2_pocet>" + M2 + "</produkt_2_pocet>";
                sXmlSource = sXmlSource + " <produkt_3_nazev>Deník</produkt_3_nazev>";
                sXmlSource = sXmlSource + " <produkt_3_pocet>" + M3 + "</produkt_3_pocet>";
                sXmlSource = sXmlSource + " <produkt_4_nazev>Smlouvy - ISO normy</produkt_4_nazev>";
                sXmlSource = sXmlSource + " <produkt_4_pocet>" + M4 + "</produkt_4_pocet>";
                sXmlSource = sXmlSource + " <produkt_5_nazev>Archiv</produkt_5_nazev>";
                sXmlSource = sXmlSource + " <produkt_5_pocet>" + M5 + "</produkt_5_pocet>";
                sXmlSource = sXmlSource + " <produkt_6_nazev>Tisk štítků</produkt_6_nazev>";
                sXmlSource = sXmlSource + " <produkt_6_pocet>" + M6 + "</produkt_6_pocet>";
                sXmlSource = sXmlSource + " <poznamka>" + sCheckString(Poznamka.Text.Replace("'", "''")) + "</poznamka>";
                sXmlSource = sXmlSource + "</root>";

                sRes = XXXgroupWS.action(sXmlSource); //komunikace s WS
                if (!sRes.ToLower().Contains("<status>ok</status>") || sRes.ToLower().Contains("<error>"))
                {
                    sRes = sRes = "<br/><br/>Omlouváme se, ale při zpracování Vaší objednávky došlo k chybě.<br/><br/>Kontaktujte nás prosím na adrese : <a href='mailto:[email protected]'>[email protected]</a>";
                }
                else
                {
                    sRes = "<br/><br/>Děkujeme za Váš zájem o produkt XXX!";
                }
            }
            catch (Exception ex) { sRes = "Chyba při komunikaci s webovou službou! \r\n\r\n" + ex.Message; }
            XXXWS.Dispose();
            Session["result"] = sRes;
            Response.Redirect("Result.aspx");
        }
    }

tady mam skopirovany usek ze souboru objednavka.aspx.cs,ten obstaraval, ze po stisku tlacitka Odeslat,se odesle objednavka a vytvori se XML dle vyplneneho formulare z datovych poli na strance objednavka.aspx .Tyto udaje byly pres agenta odeslany (sluzbu) v XML formate do nasi databaze nachazejici se na jinem serveru(pripojeni agenta k serveru je doreseno).

-vim jak odesilat na agenta,ale nevim jak od nej prijimat.

A muj dotaz je :

jak mam udelat, aby mi to fungovalo i opacnym zpusobem? tedy kdyz udelam stranku login.aspx aby mi to nacetlo udaje email a heslo z databaze pres agenta v XML ?

sestavil jsem si jiz XML (doufam,ze spravne):

<?xml version="1.0" encoding="windows-1250" standalone="no"?>
<root>
	<command id="LOGIN">
		<add_elements>
			<add_element name="status" value="error"/>
			<add_element name="errortype" value="user"/>
			<add_element name="errormessage" value="Není zadána E-mailová adresa" />
			<when><![CDATA[(('$in{e_mail}'='' AND 1=1))]]></when>
		</add_elements>

		<add_elements>
			<add_element name="status" value="error"/>
			<add_element name="errortype" value="user"/>
			<add_element name="errormessage" value="Není zadáno heslo" />
			<when_stop><![CDATA[(('$in{heslo}'='' AND 1=1))]]></when_stop>
		</add_elements>

		<add_elements>
			<add_element name="status" value="error"/>
			<add_element name="errortype" value="user"/>
			<add_element name="errormessage" value="Neexistující uživatel" />
			<when_stop><![CDATA[((not exists(select 1 from dba.hdesk_firmy_users(index pk_hdesk_firmy_users) where login=Upper('$in{e_mail}') and heslo='$in{heslo}' and platnost=1) AND 1=1))]]></when_stop>
		</add_elements>

		<add_element name="status" value="ok" />

		<select>
			<sql><![CDATA[SELECT u.firma,u.jmeno,u.prijmeni FROM dba.hdesk_firmy_users u(index pk_hdesk_firmy_users) WHERE ((u.e_mail=Upper('$in{e_mail}') AND 1=1))]]></sql>
		</select>
	</command>

</root>

a z tohoto XML potrebuji aby se mi nacetla data do email a hesla, ale nevim jak to na strance login.aspx zapsat, aby si ta data vycucla.

Budu rad za kazou vypomoc.

Dekuji.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Buď ověření uživatele můžete napsat do komponenty Login - je tam na to nějaká událost, anebo si napsat vlastního providera pro Membership, což ovšem není tak jednoduché.

Btw váš způsob vytváření XMLka je velmi neotřelý a originální, většinou se na to používají nějaké třídy, které ho vygenerují nějak rozumně - např. XElement.

Co když vám tady někdo do jména vrazí znak '<' atd.?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

tento znak tam nevrazi,daji se tam dat pouze pismena A-Z a cisla 1-9 a 0 jeste,dalsi znaky jsou nepovolene. Uzivatele se nepridavaji pres web.rozhrani, ale v IS na ktery to bude napojeno. Ten si ohlida co je mozne zadat do email adresy a co ne, totez plati o heslu.

komponentu login jsem chtel pouzit,ale nevim jak tam napojit to XML, resp. aby si ta komponenta login brala z XML email a heslo a overila to.Nevim jak to napojit,zkousel jsem to ale nepodarilo se mi vymislet jak na to.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Co takhle dokumentace? http://msdn.microsoft.com/en-us/library/...

Komponenta Login má událost OnLoggingIn, do ní si napíšete validační logiku (uživatele máte v Login1.UserName, heslo v Login1.Password) a do e.Cancel nastavte True, pokud se přihlášení nepodařilo, resp. False, pokud se povedlo.

Pak by to mělo fungovat.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Dekuji za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback