在.NET Core中同时使用Active Directory身份验证和个别用户帐户

7 浏览
0 Comments

在.NET Core中同时使用Active Directory身份验证和个别用户帐户

我被指派创建一个可以通过Active Directory或个人用户帐户进行身份验证的.NET Core(C#MVC)应用程序。

互联网上有很多关于设置其中一种身份验证方式的资源,而且我已经创建了使用它们的应用程序。但是否可能同时使用两种方式进行身份验证呢?

在.NET Core中,似乎OAuth允许多种身份验证路径,但我猜想Active Directory可能不那么容易,因为它在IIS中配置,并使用操作系统进行授权。

如果不可能同时使用两种方式进行身份验证,那么我的选择是什么?我猜想我将创建两个相同功能的独立项目,但使用不同的身份验证方式 - 但维护两个项目似乎不是一个好主意。

提前感谢任何建议。

0
0 Comments

问题的原因是用户想要在.NET Core中同时使用Active Directory身份验证和独立的用户账户。解决方法是考虑使用IdentityServer4,一个完整功能的身份验证项目,可以满足用户的需求。

用户可以选择按照他们想到的方式进行身份验证,或者转而考虑使用IdentityServer4。这是一个非常支持的库,是在.NET Core上开发新的身份验证服务器时,大多数人首先会考虑的工具。

如果用户对IdentityServer4的工作原理不熟悉,可以在这里基于他们的模板创建一个项目:

dotnet new -i "identityserver4.templates::*"

虽然用户更喜欢不使用第三方解决方案,但他们将考虑使用IdentityServer4。

这里还提供了一个与用户寻找的问题接近的Stack Overflow问题链接,供用户参考。

感谢提供资源!

0
0 Comments

在这篇文章中,作者分享了他在.NET Core中同时使用Active Directory身份验证和个别用户账户的简单自定义身份验证方法。作者首先通过添加ASP.NET Identity来简化Identity接口的实现。然后,作者创建了一个自定义的基于数据库的用户和角色表,并创建了一个用户管理器类来验证用户名和密码的有效性。最后,作者创建了一个简单的身份验证控制器,用于验证用户的有效性并创建身份声明。

然而,作者还面临一个问题:如何同时适应Active Directory用户?尽管作者已经简化了用户和角色类的实现,但是身份验证需要额外的数据,而这些数据不会存在于Active Directory中,因此无论如何都需要创建一个用户。为了解决这个问题,作者通过在登录操作中对用户名和密码进行Active Directory验证来实现。作者通过判断配置变量的值来决定是执行Active Directory验证还是自定义验证。

作者强调了自定义身份验证在.NET中的灵活性,并表示希望这篇文章能对其他人的身份验证设置有所帮助。

总结起来,这篇文章介绍了在.NET Core中同时使用Active Directory身份验证和个别用户账户的自定义身份验证方法,并提供了相应的代码实现。

0