Avatar billede hygta Nybegynder
15. marts 2007 - 14:57 Der er 3 kommentarer

Usercontrol med iframe

Det jeg gerne vil er at have en IFRAME i en usercontrol.
Det er i forbindelse med betaling via DIBS.
Derese side skal kaldes med nogle post parametre som f.eks.
beløb. Når en person så har færdiggjort betaling med dankort
sender DIBS' side ham tilbage til en side som jeg bestemmer.

Jeg har lavet følgende usercontrol:
public partial class DIBSControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public void DIBSpayment(string var1, string var2) {
   
        sti="minAspSide.asp?"+var1+"=værdi1&=+var2+"=værdi2";

        HtmlControl DIBSframe = (HtmlControl)this.FindControl("DIBSframe");
        DIBSframe.Attributes["src"] = sti;
        DIBSframe.Visible = true;


    }
}

Siden minAspSide.asp bliver sålede loaded i min IFRAME når man
kalder functionen DIBSpayment() som ligger i usercontrolen.
Siden minAspSide.asp kalder så DIBSside onload, hvor den sender
variablene med som post.

1) Det vil sige jeg insætter en usercontrol på min side.
  - Så får jeg en iframe på min side.
2) Så kalder jeg functionen DIBSpayment med mine variable
  - Så åbner DIBS betalingsvindue i min IFRAME med alle mine variable loaded.

Så langt så godt. Det virker som det skal.

Problemt kommer når jeg vil have noget info tilbage igen.
Når brugeren har betalt sine vare bliver han directed over på
en side som jeg bestemmer. Når dibs kalder denne side sender de
nogle variable med i post. Disse variable vil jeg gerne have tilbage til hovedsiden.

En ide kunne være at få dibs til at kalde DIBSreturn.aspx side, som OnLoad
gemmer alle variable i session. Og sender en eller anden form for
event til hovedsiden. Så kan jeg der hente variablene ud af session.

Det ville være let bare at loade hovedsiden igen og sende
variablene med, men så holder hovedsiden ikke viewstate.
Hvis jeg på hovedside trykker på en knap nulstilles alle textboxe ikke.
Det gør de hvis jeg loader siden igen...

Så det jeg leder efter er noget i stil med:
    protected void ping_from_other_page(object sender, EventArgs e)
    {
       
    }
Avatar billede keysersoze Guru
15. marts 2007 - 17:26 #1
jeg ved det ikke er svar på dit spørgsmål - men;

Hvis du har DIBS inde i en iframe har du næppe hængelås på i dit main-vindue og så vil betalingen næppe blive godkendt da netop hængelåsen er et krav. DIBS har et .NET betalingskomponent der kan benyttes så du slipper for iframe osv - måske det var en mulighed i stedet.
Avatar billede hygta Nybegynder
20. marts 2007 - 11:38 #2
Dibs har to betalingsmetoder.
En simple metode hvor man blot kalder en side på dibs' server med nogle værdier og så klare de det hele. Det er denne løsning jeg gerne vil bruge.
Med den anden løsning kan man gøre lige det man har lyst til. I dette tilfælde skal man selv lave alt på sin egen server og så kommunikere med dibs' server, den vej igennem. Denne løsning er meget dyre idet den kræver, at man er godkendt til at håndtere klasifiseret data.
Den dot net komponent du snakker om er så vidt jeg kan se til denne sidste løsning og hjælper mig derfor ikke så meget :)
Avatar billede keysersoze Guru
20. marts 2007 - 17:16 #3
det er korrekt - sagde også, at det ikke var svar på dit problem :)

Den primære grund til min kommentar var sådan set, at hvis du benytter en iframe kan du ikke opfylde de krav der er omkring sikkerheden (hængelås) - det kan godt være at det overses i kontrollen, men det gør det ikke mindre forkert ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester