# Azure Function Login-Beispiel

Dieses Beispiel zeigt ein einfaches Authentifizierungsformular, das Anmeldeinformationen des Befragten erfasst, die Anmeldeinformationen remote mit einer Azure-Funktion validiert und die vollständigen Informationen des Benutzers an die Umfrage zurückgibt.

Beginnen Sie damit, die Benutzeroberfläche Ihrer Sicherheitsfunktion so einzurichten, dass der Benutzername und das Passwort vom Befragten abgefragt werden.

![](https://133942686-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M8fLhS0bmfBRyq0HdUm%2F-MBG7b0TE8Dt4aLp0ZWw%2F-MBG8FBaMaFXeShXhniR%2Fimage.png?alt=media\&token=00b96940-9ff6-49f9-915b-efdbf719c372)

Melden Sie sich dann im Azure-Onlineportal an, um eine neue Azure Function zu erstellen, die die von der Benutzeroberfläche als JSON-Objekt geposteten Daten (z. B. {username:'value', password:'value'}) empfängt und ein geeignetes Benutzerobjekt zurückgibt, wenn die Anmeldeinformationen gültig sind.

ngSurvey erwartet, vom Endpoint ein einfaches JSON-Objekt zu erhalten, z. B. {name:'value', firstName:'value'}. Alle Eigenschaften dieses Objekts werden zusammen mit den Antworten des Befragten gespeichert und können überall in Fragen/Antworten mit \_\_lowercasepropertyname\_\_ gepiped werden. In unserem Beispiel können wir \_\_name\_\_ verwenden, um den von unserer Azure-Funktion zurückgegebenen Namen in jedem Teil unserer Umfrage einzufügen.

Jegliche Fehler, die vom HTTP-Endpoint zurückgegeben werden müssen, sollten als Http Bad Request mit der Meldung zurückgegeben werden, die dem Befragten angezeigt wird.

Hier unser grundlegender Azure Function-Code, der die gefälschten Benutzeranmeldeinformationen überprüft.

```csharp
#r "Newtonsoft.Json"

  using System.Net;
  using Microsoft.AspNetCore.Mvc;
  using Microsoft.Extensions.Primitives;
  using Newtonsoft.Json;
  
  class User {
      public string Id; 
      public string Email;
      public string Name;
  }
  public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
  {
      string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
      dynamic data = JsonConvert.DeserializeObject(requestBody);
      // check user 
      if (data?.username == "JohnDoe" && data?.password =="MayTheForceBeWithYou") {
        // If user valid return an object  
        var user = new User();
          user.Id = "1234567";
          user.Email = "John@Doe.com";
          user.Name = "John doe";
          return (ActionResult)new OkObjectResult(user);
      } else {
          return new BadRequestObjectResult("Invalid user!");
      }
  }
```

Das war's! Sie haben ngSurvey gerade mit einer neuen benutzerdefinierten Login-Geschäftslogik mithilfe einer entfernten Azure-Funktion erweitert.
