gpt4 book ai didi

asp.net-core - 如何将 asp.net core windows 身份验证与 Cookie 身份验证一起使用?

转载 作者:行者123 更新时间:2023-12-05 06:38:58 24 4
gpt4 key购买 nike

我有一个 ASP.net Core (.net framework 4.7) 应用程序正在使用 cookie 身份验证,就像 this link 中的那样。

    app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationScheme = "CookieAuthentication",
LoginPath = new PathString("/Login/"),
AccessDeniedPath = new PathString("/Login/"),
AutomaticAuthenticate = true,
AutomaticChallenge = true
});

我想做的是允许使用 Cookie 身份验证进行 Windows 身份验证。因此,如果用户在公司的域中,他/她不必输入用户名和密码。但是如果他们来自外部域,他们将被重定向到登录页面并输入他们的用户名和密码以进行身份​​验证.

最佳答案

if the user is in the company's domain he/she doesn't have to Enter user name and password.

不必输入用户名和密码 是棘手的部分。据我所知,您不能同时满足这两种身份验证。

但是,您可以要求这两种类型的用户输入用户名和密码,并先通过您的系统进行身份验证。如果认证失败,您可以使用域帐户进行认证。

如果该方案可行,您可以使用 Novell.Directory.Ldap在 ASP.NET 核心中。 Here是示例代码。

public bool ValidateUser(string domainName, string username, string password)
{
string userDn = $"{username}@{domainName}";
try
{
using (var connection = new LdapConnection {SecureSocketLayer = false})
{
connection.Connect(domainName, LdapConnection.DEFAULT_PORT);
connection.Bind(userDn, password);

if (connection.Bound)
return true;
}
}
catch (LdapException ex)
{
// Log exception
}
return false;
}

注意:截至今天,System.DirectoryServices 在 ASP.NET Core 中尚不可用。

关于asp.net-core - 如何将 asp.net core windows 身份验证与 Cookie 身份验证一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45310589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com