اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

ستحتاج إلى القيام بالخطوات التالية:

1- إعداد Identity Server

  • تثبيت WSO2 Identity Server على الخادم الخاص بك والتأكد من أنه يعمل بشكل صحيح.
  • قم بإنشاء تطبيق جديد في Identity Server. يمكنك القيام بذلك من خلال لوحة التحكم الخاصة ب Identity Server.

2- إعداد .NET Core

  • تثبيت .NET Core SDK على جهاز الكمبيوتر الخاص بك.
  • إنشاء مشروع .NET Core جديد باستخدام أي محرك قواعد بيانات تفضله، مثل Entity Framework.

3- ربط Identity Server و .NET Core

  • قم بإضافة مكتبة WSO2 Identity Server إلى مشروع .NET Core الخاص بك باستخدام مدير حزم NuGet.
  • إنشاء ملف تكوين جديد لـ Identity Server في مشروع .NET Core الخاص بك. يمكنك القيام بذلك باستخدام ملفات JSON أو YAML.
  • ثم إنشاء ملف Startup.cs في مشروع .NET Core الخاص بك وقم بتكوين خدمة الاعتماد الخاصة ب Identity Server.

ويمكنك استخدام الكود التالي:

public void ConfigureServices(IServiceCollection services)
{
    // Add authentication services
    services.AddAuthentication("Bearer")
        .AddJwtBearer("Bearer", options =>
        {
            options.Authority = "https://localhost:9443/oauth2/token";
            options.Audience = "myapp";
        });

    // Add framework services
    services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication();
    app.UseMvc();
}

حيث تم استخدام AddJwtBearer لإضافة دعم JWT إلى .NET Core، وتكوين خياراته لاستخدام Authority و Audience الخاصة ب Identity Server.

بعد الانتهاء من الخطوات المذكورة أعلاه، باستطاعتك اختبار الاتصال بين Identity Server و .NET Core عن طريق إنشاء نموذج بسيط في .NET Core وإضافة تسجيل دخول وتسجيل خروج باستخدام الأمر HttpContext.SignInAsync و HttpContext.SignOutAsync.

وبإمكانك استخدام الكود التالي كقالب لنموذجك:

public class AccountController : Controller
{
    public async Task<IActionResult> Login(string returnUrl = "/")
    {
        var result = await HttpContext.AuthenticateAsync("Bearer");
        if (result.Succeeded)
        {
            return LocalRedirect(returnUrl);
        }
        else if (result.Failure != null)
        {
            ModelState.AddModelError("", "Failed to authenticate");
        }

        return View();
    }

    public async Task<IActionResult> Logout()
    {
        await HttpContext.SignOutAsync("Bearer");
        return RedirectToAction(nameof(HomeController.Index), "Home");
    }
}

تم استخدام HttpContext.AuthenticateAsync لتسجيل دخول المستخدم باستخدام خدمة الاعتماد الخاصة ب Identity Server، واستخدمت HttpContext.SignOutAsync لتسجيل خروج المستخدم.

وتحديد اسم الخدمة (Bearer) الذي تم استخدامه في ConfigureServices في Startup.cs في الأمر HttpContext.AuthenticateAsync و HttpContext.SignOutAsync.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...