【问题标题】:How do I implement authentication from a local Active Directory in Blazor Server-Side application?如何在 Blazor 服务器端应用程序中从本地 Active Directory 实施身份验证?
【发布时间】:2025-12-18 15:00:01
【问题描述】:

我希望本地 Active Directory 中的所有人都能登录到我们的 blazor 服务器端应用程序。在 MSDN 上,他们为我提供了各种身份验证选项。但这些都不是针对本地 Active Directory,仅针对 Azure 中的 Active Directory。

Windows 身份验证不是选项,因为我需要用户能够退出应用程序。有谁知道使用本地 Active Directory 进行身份验证的可靠方法?任何帮助表示赞赏。

【问题讨论】:

    标签: c# asp.net-core active-directory ldap blazor-server-side


    【解决方案1】:

    首先添加 nutget 包 System.DirectoryServices 然后在你的登录组件中

        @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;
            }
    
    
        }
    
    }
    

    【讨论】:

    • 我遇到了同样的问题,针对 AD 查询用户/密码就可以了。但下一步是什么?如何将用户设置为“已验证”?
    最近更新 更多