Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Code behind e comando csc.exe???

    Una pagina aspx si rifa con codebehind ad un'altra così

    <%@ Page Language="c#" codebehind="FormsAuth_Login.aspx.cs" autoeventwireup="false" Inherits="formsauthcookieless.FormsAuth_Login" %>


    Io non ho capito questo ( :quipy: ): il file FormsAuth_Login.aspx.cs deve perciò essere stato compilato e deve trovarsi nella bin?
    Se sì, come credo, il problema diventa questo: io uso webmatrix che NON fa la compilazione atomatica per ci devo farlo a mano. Il file FormsAuth_Login.aspx.cs è questo


    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    using System.Web.Security;

    namespace formsauthcookieless
    {
    /// <summary>
    /// Descrizione di riepilogo per FormsAuth_Login.
    /// </summary>
    public class FormsAuth_Login : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox username;
    protected System.Web.UI.WebControls.Button loginbtn;
    protected System.Web.UI.WebControls.Label message;
    protected System.Web.UI.WebControls.CheckBox persistent;
    protected System.Web.UI.WebControls.Button btnCookieLessLogin;
    protected System.Web.UI.WebControls.TextBox pass;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // Inserire qui il codice utente necessario per inizializzare la pagina.
    }

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: questa chiamata richiesta da Progettazione Web Form ASP.NET.
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// Metodo necessario per il supporto della finestra di progettazione. Non modificare
    /// il contenuto del metodo con l'editor di codice.
    /// </summary>
    private void InitializeComponent()
    {
    this.loginbtn.Click += new System.EventHandler(this.loginbtn_Click);
    this.btnCookieLessLogin.Click += new System.EventHandler(this.btnCookieLessLogin_Click) ;
    this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion

    private void loginbtn_Click(object sender, System.EventArgs e)
    {
    if (FormsAuthentication.Authenticate(username.Text, pass.Text))
    {
    // se trova user e pass nel web.config esegue il sign in
    // la chiamata a questo metodo, oltre che fare il redirect alla pagina
    // richiesta dall'utente, rilascia un cookie di autenticazione sul client
    FormsAuthentication.RedirectFromLoginPage(username .Text, persistent.Checked);
    }
    else
    {
    // altrimenti visualizza un mess. d'errore
    message.Text = "Login fallito: inserire valore o modificare quello immesso";
    }
    }

    private void btnCookieLessLogin_Click(object sender, System.EventArgs e)
    {
    string encryptedTicket = "";
    string redirectUrl = "";

    // con questo bottone si esegue il login, senza per rilasciare un cookie,
    // me semplicemente creando un FormsAuthenticationTicket che verr allegato alla
    // richiesta tramite parametro GET
    // 1) verifico le credenziali immesse dall'utente
    if (FormsAuthentication.Authenticate(username.Text, pass.Text))
    {
    // 2) instanzio un Ticket
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(username.Text, false, 30);

    // 3) cripto il contenuto e lo immetto in una stringa
    encryptedTicket = FormsAuthentication.Encrypt(ticket);

    // 4) recupero il redirectUrl, cio la pagina che l'utente aveva richiesto prima della
    // visualizzazione del form di authenticazione
    redirectUrl = FormsAuthentication.GetRedirectUrl(username.Text, false);

    // 5) adesso devo allegare la stringa che rappresenta il ticket cryptato come parametro GET
    // all'url che verr utilizzato per il redirect
    if (redirectUrl.IndexOf("?") == -1)
    {
    // se l'url NON conteneva alcun parametro GET
    redirectUrl += "?" + FormsAuthentication.FormsCookieName + "=" + encryptedTicket;
    }
    else
    {
    // se l'url invece conteneva gi dei parametri GET, se ne aggiunge uno
    redirectUrl += "&" + FormsAuthentication.FormsCookieName + "=" + encryptedTicket;
    }

    // 6) ed infine rediriggo l'utente alla pagina che aveva richiesto
    Response.Redirect(redirectUrl);
    }
    else
    {
    // altrimenti visualizza un mess. d'errore
    message.Text = "Login fallito, please try again";
    }
    }
    }
    }


    CHE RAZZA DI RIGA DI COMANDO SI DEVE USARE???

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    I CodeBehind non vanno compilati. Ci pensa il server alla richiesta della pagina. I tuoi namespace invece vanno compilati.

    cmq leggi quì

    Hey hey, my my Rock and roll can never die!

  3. #3
    Ho letto e imparato:
    Il codebehind può essere utilizzato anche senza compilazione:

    <%@ Page Language="VB" Inherits="MiaPageClass" Src="MiaPageClass.vb" %>

    Se vuoi compilare invece, puoi utilizzare questo codice:

    <%@ Page language="VB" Codebehind="MiaPageClass.aspx.vb" AutoEventWireup="false" Inherits="MiaPageClass.WebForm1" %>

    Per compilare in VB.NET utilizzi da shell Dos il comando vbc:

    vbc /t:library MiaPageClass.vb


    Ma mi rimane un dubbio sul comando VBC

    basta la sintassi di cui sopra o , per l'esempio da me fatto sopra, bisogna aggiungere altro?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Per compilare:

    -Apri il prompt dei comandi dos;

    -Spostati alla cartella che cotiene il file .vb o .cs;

    -Scrivi questo:

    per VB:

    vbc /t:library /out:Nome_Dll.dll /r:System.dll / Nome_File_VB.vb

    per C#:

    csc /t:library /out:Nome_Dll.dll /r:System.dll / Nome_File_VB.cs

    -Se non trova il file .exe cerca nel tuo PC il file vbc.exe o csc.exe e copialo nella cartella system32 di windows.

    Spiegazione:

    /out:Nome_Dll.dll è il nome con cui salverai la dll

    /r:System.dll Devi ripeterlo per tutti i namespace che utilizzi nel tuo file vb, ad esempio se importi il namespace System.Data devi scrivere(/r:System.dll /r:SyStem.Data.dll).

    Nome_File_VB.vb o .cs è il nome del file che vuoi compilare.

    Hey hey, my my Rock and roll can never die!

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.