Avatar billede c-sharp Nybegynder
05. marts 2004 - 23:18 Der er 10 kommentarer og
1 løsning

Kan ikke tilgå User.Identity.Name fra ascx.cs fil

Jeg har lavet en menu som en user-component, men i denne menu vil jeg gerne til gå User.Identity.Name, men dår følgende fejl n nå jeg compiler:

C:\Inetpub\wwwroot\cs\\knappePanel.ascx.cs(37): The type or namespace name 'User' could not be found (are you missing a using directive or an assembly reference?)

Hvad er der galt?
Avatar billede snepnet Nybegynder
06. marts 2004 - 01:10 #1
Bare brug
Page.User.Identity.Name
Så skulle den være der.
(den skulle også gerne komme frem med codecompletion hvis du skriver "this.")
Avatar billede burningice Nybegynder
06. marts 2004 - 11:57 #2
snepnet>> eeh.. nu er det sådan, at en usercontrol ikke har noget page-object.

vb-begynder>> du skal have fat i din HttpContext som din usercontrol-instans er en del af. Det kan du gøre ved

1) enten at få fat i en reference til den side usercontrollen er en del af og derfra få fat i User-objectet
2) bruge den statiske metode HttpContext.Current som vil give dig en reference til den aktuelle HttpContext
Avatar billede snepnet Nybegynder
07. marts 2004 - 14:44 #3
System.Web.UI.UserControl har base i TemplateControl, som har base i Control, som implementerer Page, der returnerer en reference til det System.Web.UI.Page objekt som fungerer som aktuel container.

Nedenstående skulle derfor ikke give nogle problemer :

//
// some using's
//
public class UC : System.Web.UI.UserControl
{
  private void Page_Load(object sender, System.EventArgs e)
  {
    this.Page.Response.Write(this.Page.User.Identity.Name);
  }

  override protected void OnInit(EventArgs e)
  {
    InitializeComponent();
    base.OnInit(e);
  }
       
  private void InitializeComponent()
  {
    this.Load += new System.EventHandler(this.Page_Load);
  }
}
Avatar billede burningice Nybegynder
07. marts 2004 - 16:04 #4
snepnet>> godt, så er vi enige... nok bare lidt ord-forkludleri, da der jo også er en type der hedder Page, hvilken var den jeg troede du henviste til.

Det er rigtigt at UserControl har en property der hedder Page som referer til det page-object usercontrol'en er en del af, og det pageobject har en peroperty der hedder User som referer til det IPrincipal-object vb-begynder er interreseret i :)
Avatar billede snepnet Nybegynder
07. marts 2004 - 16:24 #5
Jamen så er der jo bare styr på bollen :o)
Så må vi bare håbe at vb_begynder kan komme videre....
Hmm... der er noget der lige slår mig. [vb]_begynder ?!? så giver "this." jo nok ikke det store :o)

vb_begynder >> giv lige lyd hvis du får problemer med at transmogriffe koden om til VB. Unskyld jeg ikke lige var opmærksom på dit navn.
Avatar billede burningice Nybegynder
07. marts 2004 - 19:08 #6
snepnet>> hehe.. bare rolig... han er blevet omvendt fra vb til c#... det er bare eksperten der ikke tillader at man omdøber sin bruger.
Avatar billede snepnet Nybegynder
07. marts 2004 - 19:59 #7
Ok... alletiders - tak :o)
Avatar billede pnr Nybegynder
08. marts 2004 - 06:37 #8
Så så nu skal i ikke misbruge mit navn :-)

Det her virkede fint for mig:

  Page.User.Identity.Name

Mener i at jeg burde skrive: this.Page.User.Identity.Name?
Avatar billede c-sharp Nybegynder
08. marts 2004 - 06:42 #9
Ups. det må i undskylde, men min makker som havde sidet ved min maskine i går havde vist ikke fået logget af eksperten (Derfor skiver jeg som pnr og ikke vb-begynder). sorry!
Avatar billede c-sharp Nybegynder
08. marts 2004 - 06:43 #10
Så skal i have tak for jeres hjælp!
Avatar billede burningice Nybegynder
08. marts 2004 - 08:19 #11
well... this referer bare til det object man står i... jeg bruger det kun når det er nødvendigt for læsevenlighedensskyld samt når jeg SKAL, f.eks. når hvis jeg skal sende referencen af objectet videre eller f.eks. ved dette:

Foo(int id) {
  this.id = id;
}

så... det er op til dig om du vil bruge det, i dette tilfælde vil det måske være en god ide for ikke at blande det sammen med typen af samme navn.
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