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");
}
}
我设计了一个内部应用程序,要求用户根据 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");
}
}