繁体   English   中英

如何在 Blazor 服务器端应用程序中从本地 Active Directory 实施身份验证?

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

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

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

首先添加 nutget package 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;
        }


    }

}

var directorySearch = new DirectorySearcher(new DirectoryEntry("LDAP://" + domain, user.UserName, password)); directorySearch.Filter = "(SAMAccountName=" + user.UserName+ ")"; SearchResult result = directorySearch.FindOne();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM