对于早期版本的.NET应用程序模板(即4.5.2 ),您可以创建一个新的网络应用程序,将身份验证更改为“Work and School Account”,并选择“就地”。在.NET 5网络应用模板中,“工作和学校帐户”选项没有“就地”选项。
如何使用.NET 5中的本地Active (LDAP)使用ASP.NET标识进行身份验证。要明确的是,我不需要Windows身份验证,我希望让用户输入他们的凭据,并根据现场AD处理身份验证。IOW,用户不需要登录到windows机器,他们可以从他们的移动设备访问等等。
我已经找了好几个小时了,但如果答案就在某处,我就不会感到惊讶了。任何帮助都是非常感谢的!
发布于 2016-03-17 09:09:01
LDAP和就地身份验证并不是一回事,这就是为什么IMHO,在店内模式已经不再是“开箱即用”的选择,也是因为微软几乎不想让每个人都搬到Azure云上:)
现场模式(如您所见,这里)是一种使用AD作为联邦提供者的方法(在SF上检查一下),比如Twitter或Facebook,如果您愿意的话;您可以在本地使用ADFS (如果您的AD支持它),或者在云中使用ADFS(使用Azure)。
如果您正在寻找LDAP身份验证,最简单的工作方法是使用“单个用户帐户”模式(类似于旧的学校表单auth),并使用AD作为用户身份验证的真实来源,例如(请查看这因此文章):
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标识与LDAP一起使用,您可以创建您的个人自定义存储提供程序,作为完美解释的这里。这并不困难,但可能需要很长时间才能实现。
发布于 2016-03-22 22:32:07
没有现场选项,因为.NET核心将不支持WS-Fed在运输时.即使是在较早版本的.NET on-LDAP不使用LDAP,它也使用WS与ADFS服务器对话。
非常老的ASP.NET版本确实有一个AD成员资格提供程序,但是它在安全性方面存在问题,并且没有出现在ASP.NET 4.0中。
您可以实现您自己的成员资格提供程序,但是.NET核心没有LDAP/System.DirectoryService类,因此您必须从头开始进行所有操作,包括创建一个库来通过LDAP套接字进行对话。
TLDR:你不能。
发布于 2016-01-17 02:41:17
我不知道任何模板或任何东西,但是我按照本指南使用oAuth2和Owin设置了自己的身份提供程序。
然后,为了对active目录进行身份验证,我创建了自己的用户存储和用户管理器,并使用来自UserPrincipal程序集的PrinipalContext和Directory.Masnagement类手动进行了验证。
https://stackoverflow.com/questions/34834504
复制相似问题