# Beispiel für die Azure Function-Anmeldung

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.

![](/files/b359e186a07958d86447bbd86b9b09366c93b04a)

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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ngsurvey.com/de/form-management/security/security-items/http-security-function/azure-function-login-sample.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
