Skip to content

Implementation Guide for .NET API and React Frontend #196

Closed

Description

@Akinnagbe

Hi,
I am trying to find my way around the Library. I am building a custom LMS with .NET 9 as the API and React as the frontend.
I want to ask if anyone has a suggestion on how I can use this library to make my LMS LTI-compliant.

Regards,

Activity

  1. jeroenhabets commented on Apr 22, 2026

    @jeroenhabets
    Contributor

    @Akinnagbe as it says in the README.md:

    LtiAdvantage.AspNetCore contains ASP.NET Core controller implementations to assist in platform development.

    And there is a Sample Platform LtiAdvantagePlatform from a long time ago that is woefully out of date but can still be useful for inspiration.

    I assume you have looked into the info from 1EdTech/IMS Global, the organization behind LTI, e.g. LTI Advantage Overview, with their LTI Advantage Implementation Guide, and Reference Implementation

  2. jeroenhabets commented on Jun 22, 2026

    @jeroenhabets
    Contributor

    @Akinnagbe did you manage to get it to work?

  3. srijken commented on Oct 28, 2026

    @srijken
    Contributor

    The sample platform now has a React front end that shows this setup: LtiLibrary/LtiAdvantagePlatform#23.

    In short, for an LMS with a .NET API and React:

    • React lists courses and links and decides where a tool appears (iframe or new tab). To launch, it points an iframe at a server URL. It never builds LTI messages or signs anything.
    • The .NET side does the LTI work: OIDC login initiation, the authorize endpoint that signs the id_token (OpenIddict plus LtiAdvantage.Oidc in the sample), deep-link response validation, and the AGS/NRPS endpoints (LtiAdvantage.AspNetCore controller bases).
    • Serve React and the API from the same origin, or put them behind one, so the authorize endpoint inside the iframe sees the signed-in user's cookie.
    • When Deep Linking finishes, the platform's return page tells the React app with postMessage.

    The README section "Using a React front end" has the details. Feel free to reopen if anything's unclear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions