# نموذج تسجيل دخول Azure Function

يوضح هذا المثال نموذج مصادقة بسيط يجمع بيانات اعتماد المستجيب، يتحقق من صحة بيانات الاعتماد عن بُعد باستخدام دالة Azure ويعيد المعلومات الكاملة عن المستخدم إلى الاستبيان.

ابدأ أولاً بإعداد واجهة المستخدم لدالة الأمان لطلب اسم المستخدم وكلمة المرور من المستجيب.

![](/files/6ed8d2225115827b07ad83901d119c38c75a5cb1)

ثم سجّل الدخول إلى بوابة Azure على الإنترنت لإنشاء دالة Azure جديدة ستحصل على البيانات المرسلة بواسطة واجهة المستخدم التي أنشأناها على شكل كائن json مثل: {username:'value', password:'value'} وتعيد كائن مستخدم مناسبًا إذا كانت بيانات الاعتماد صحيحة.

يتوقع ngSurvey استلام كائن json بسيط من نقطة النهاية مثل: {name:'value', firstName:'value'}. ستُحفظ كل خصائص هذا الكائن مع إجابات المستجيب ويمكن استخدامها وحقنها في أي مكان في الأسئلة/الإجابات باستخدام \_\_lowercasepropertyname\_\_. في مثالنا يمكننا استخدام \_\_name\_\_ لحقن الاسم الذي تُرجعه دالتنا في أي جزء من الاستبيان.

يجب أن تُعاد أي أخطاء من نقطة نهاية http كـ Http Bad Request مع الرسالة التي ستعرض للمستجيب.

هنا كود دالة Azure الأساسي الذي سيتحقق من بيانات اعتماد مستخدم وهمي

```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!");
      }
  }
```

هذا كل شيء! لقد قمت الآن بتوسيع ngSurvey بمنطق تسجيل دخول مخصص جديد باستخدام دالة Azure البعيدة.


---

# 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/ar/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.
