How do I implement authentication from a local Active Directory in Blazor Server-Side application?

Viewed 1976

I want all people from our local Active Directory to be able to login into our blazor server side application. On MSDN they offer me all kind of authentication options. But non of these are for a local Active Directory, just for an Active Directory in Azure.

Windows Authentication is no option because I need the user to be able to logout of the app. Does anyone know a reliable way to achive an authentication with a local Active Directory? Any help is appreciated.

1 Answers

First add nutget package System.DirectoryServices then in your login component

    @using System.DirectoryServices


<EditForm Model="@user" OnValidSubmit="@HandleValidSubmit">
    <DataAnnotationsValidator />
    <ValidationSummary />
    <div class="row">
        <div class="col-md-12">
            <label>User Name :</label>
            <InputText @bind-Value="user.UserName"></InputText>
        </div>
        <div class="col-md-12">
            <label>Password</label>
            <InputText @bind-Value="user.Password"></InputText>
        </div>
        <div class="col-md-12">
            <button type="submit">Login</button>
        </div>
    </div>

</EditForm>

@code {

    public UserData user { get; set; } = new UserData();
    private void HandleValidSubmit()
    {
        DirectoryEntry entry = new DirectoryEntry();
        entry = new DirectoryEntry("LDAP://Your Active directory IP");
        entry.Username = user.UserName;
        entry.Password = user.Password;

        DirectorySearcher search = new DirectorySearcher(entry);
        search.Filter = "(SAMAccountName=" + user.UserName + ")";

        SearchResult result = search.FindOne();

        if (result == null)
        {
            //return false;
        }
        else
        {
           // return true;
        }


    }

}
Related