对于早期版本的 .NET 应用程序模板,即 4.5.2,您可以创建一个新的 Web 应用程序,将身份验证更改为“工作和学校帐户”,然后选择“内部部署”。在 .NET 5 Web 应用程序模板中,“工作和学校帐户”选项没有“本地”选项。
如何使用 ASP.NET Identity 在 .NET 5 中通过本地 Active Directory (LDAP) 进行身份验证。明确地说,我不是在寻找 Windows 身份验证,我想让用户输入他们的凭据并处理针对本地 AD 的身份验证。 IOW,用户不需要登录到 Windows 机器,他们可以从他们的移动设备等访问。
我搜索了几个小时都没有结果,但如果答案就在某处,我也不会感到惊讶。感谢您的帮助!
最佳答案
LDAP 和本地身份验证不是一回事,这就是为什么恕我直言,本地模式已作为“开箱即用”选项消失的原因 - 也因为微软几乎没有插入每个人转向蔚蓝云:)
On-Premises 模式(如您所见 here )是一种将 AD 用作联合提供者的方法(在 SF 上查看),如 Twitter 或 Facebook,如果您愿意的话;您可以在本地(如果您的 AD 支持)或在云端(使用 Azure)使用 ADFS。
如果您正在寻找 LDAP 身份验证,最简单的工作方法是使用“个人用户帐户”模式(类似于旧学校形式的身份验证)并使用 AD 作为用户身份验证的真实来源,例如(查看 this SO 文章):
using System.Security;
using System.DirectoryServices.AccountManagement;
public struct Credentials
{
public string Username;
public string Password;
}
public class Domain_Authentication
{
public Credentials Credentials;
public string Domain;
public Domain_Authentication(string Username, string Password, string SDomain)
{
Credentials.Username = Username;
Credentials.Password = Password;
Domain = SDomain;
}
public bool IsValid()
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain))
{
// validate the credentials
return pc.ValidateCredentials(Credentials.Username, Credentials.Password);
}
}
}
无论如何,如果您正在使用异构系统,或者如果您更喜欢使用更“安全”的东西,我建议您使用 OAuth2,它在 MVC 6 中作为开箱即用的支持。
更新
如果您想将 ASP.NET Identity 与 LDAP 一起使用,您可以创建您的个人自定义存储提供程序,如完美解释 here . 这并不困难,但实现起来可能会很长。
关于c# - ASP.NET 5/MVC 6 本地事件目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834504/