Frage

Ich habe einen Kodex von der Website von 4guysfromrolla, was ein Tutorial zum Anmelden als einen anderen Benutzer mit Admin-Anmeldeinformationen gibt.

Ich habe den größten Teil davon, aber ich habe Probleme, diesen Teil des Codes von VB auf C # zu übersetzen. Der Teil, den ich, dass ich Schwierigkeiten habe, übersetzt zu werden ist der erste if Aussage.

If Page.User.Identity IsNot Nothing AndAlso TypeOf Page.User.Identity Is FormsIdentity Then
   Dim ident As FormsIdentity = CType(Page.User.Identity, FormsIdentity)
   Dim ticket As FormsAuthenticationTicket = ident.Ticket
   Dim AdminUserName As String = ticket.UserData

   If Not String.IsNullOrEmpty(AdminUserName) Then
      'An Admin user is logged on as another user... 
      'The variable AdminUserName returns the Admin user's name
      'To get the currently logged on user's name, use Page.User.Identity.Name
   Else
      'The user logged on directly (the typical scenario)
   End If
End If

Ich wäre dankbar, wenn mir jemand helfen könnte, das zu übersetzen! Dies ist der Teil, in dem die Seite erkennt, ob der Benutzer in der Tat ein Administrator ist, der sich als ein anderer Benutzer anprotokolliert, so dass ich ein Panel programmgesteusprogrammatisch mit einer Erinnerung daran anzeigen kann.

War es hilfreich?

Lösung

Von http://converter.telerik.com/:

if (Page.User.Identity != null && Page.User.Identity is FormsIdentity) {
    FormsIdentity ident = (FormsIdentity)Page.User.Identity;
    FormsAuthenticationTicket ticket = ident.Ticket;
    string AdminUserName = ticket.UserData;

    if (!string.IsNullOrEmpty(AdminUserName)) {
    //An Admin user is logged on as another user... 
    //The variable AdminUserName returns the Admin user's name
    //To get the currently logged on user's name, use Page.User.Identity.Name
    } else {
        //The user logged on directly (the typical scenario)
    }
}

Andere Tipps

if (Page.User.Identity != null && Page.User.Identity is FormsIdentity)
{
    ....
}

Ich gehe davon aus, dass Sie mit dem Rest in Ordnung sind.

If Page.User.Identity IsNot Nothing AndAlso TypeOf Page.User.Identity Is FormsIdentity Then

Wäre

if( Page.User.Identity != null && Page.User.Identity is FormsIdentity )

AndAlso ist nur ein UND Bediener, der nur die linke Seite auswertet, wenn die linke Seite ist false (Standardverhalten in C #).

Um zu überprüfen, ob ein Objekt nichts ist, vergleichen Sie sie mit null, und um zu überprüfen, ob ein Objekt von einem Typ ist, verwenden Sie die is Operator.

Wie wäre es mit

if (Page.User.Identity != null && Page.User.Identity is FormsIdentity)
{
   var ident = (FormsIdentity)Page.User.Identity;
   var ticket  = ident.Ticket;
   var AdminUserName = ticket.UserData;

   if (!String.IsNullOrEmpty(AdminUserName))
   {
      'An Admin user is logged on as another user... 
      'The variable AdminUserName returns the Admin user's name
      'To get the currently logged on user's name, use Page.User.Identity.Name
   }
   else
   {
      'The user logged on directly (the typical scenario)
   }
}

Stackoverflow ist kein Übersetzungsservice, jedoch ...

var fIdent = User.Identity as FormsIdentity;
if(fIdent != null)
{
    string adminUserName = fIdent.Ticket.UserData;
    if(!String.IsNullOrEmpty(adminUserName))
    {
        // an Admin user is logged on as another user... 
    }
    else
    {
        // the user logged on directly (the typical scenario)
    }
}

Was Sie uns fragen, ist im Wesentlichen zu lehren C#.

Wie ich zunächst in meinem Kommentar erwähnt habe, verwenden Sie einen Konvertor, wenn Sie sich nicht sicher sind. Vergleichen Sie danach die Unterschiede in Ihrem VB.NET Code für Sie C# und sehen die strukturellen Unterschiede.

Vb.net.

If True Then
  'Do Stuff
End If

C#

if(true){
 //Do stuff
}

Unterschiede der oben genannten, Condion ist eingewickelt () und then und end if werden durch ersetzt parenthesis. Sie sollten den Code nicht einfach geradeaus annehmen, lesen Sie es und vergleichen Sie ihn dann. Dann versuchen Sie es, es selbst zu schreiben :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top