Blazor - Windows 身份验证

Blazor - Windows Authentication

我设计了一个内部应用程序,要求用户根据 AD 进行身份验证。话虽如此,用户必须在登录屏幕上提供 his/her id/password 才能进行身份验证。 (我们不希望任何人都可以打开应用程序并做任何事情

我已经阅读了几篇关于设置环境和通过 System.Security.Principal.WindowsIdentity.GetCurrent() 使用现有身份的文章。没有人谈论通过 UI.

提供的信息进行身份验证

我已经构建了登录表单并且我有一个自定义的 AuthenticationStateProvider,但我不知道如何将从用户那里获得的凭据传递给 Windows,因此它可以使用 AD 对其进行身份验证。

有人可以阐明我该怎么做吗?谢谢!

我正在使用 .NET Standard LDAP client library,它工作正常。

这样使用:

using (var cn = new LdapConnection())
{
     // connect to AD host
     cn.Connect("your_ad", 389);
     try
     {
         cn.Bind("user@domain", "pwd");
     }
     catch(LdapException e)
     {
        // invalid credentials
     }
}

在 Stefan 的带领下,我找到了包裹 System.DirectoryServices.Protocols。用法与 Stefan 提到的 Novell 非常相似。下面是我打算集成到AuthenticationStateProvider中的测试代码。

using (var cn = new LdapConnection(new LdapDirectoryIdentifier("ad_servername")))
{
    try
    {
        // this how you can verify the password of an user
        cn.Bind(new NetworkCredential("myid", "mypwd"));

        
    }
    catch(LdapException l)
    {
        Console.WriteLine("logon failed");
    }
}