Bla*_*ain 13 c# ldap active-directory asp.net-identity asp.net-core-mvc
对于早期版本的.NET应用程序模板(即4.5.2),您可以创建新的Web应用程序,将身份验证更改为"工作和学校帐户"并选择"内部部署".在.NET 5 Web应用程序模板中,"工作和学校帐户"选项没有"内部部署"选项.
如何使用ASP.NET标识通过.NET 5中的本地Active Directory(LDAP)进行身份验证.为了清楚起见,我不是在寻找Windows身份验证,我希望让用户输入他们的凭据并处理针对内部部署AD的身份验证.IOW,用户不需要登录到Windows机器,他们可以从他们的移动设备等访问.
我搜索了几个小时但没有用,但如果答案在某处,我不会感到惊讶.任何帮助表示赞赏!
Luc*_*rsi 10
LDAP和内部部署身份验证不是一回事,这就是为什么,恕我直言,内部部署模式它已经成为"开箱即用"选项 - 而且因为微软几乎没有推动每个人迁移到Azure云: )
内部部署模式(你可以看到这里)是使用AD作为联合提供者(检查这一个办法SF),如Twitter或Facebook,如果你喜欢; 您可以在本地使用ADFS(如果您的AD支持它)或在云中使用ADFS(使用Azure).
如果您正在寻找LDAP身份验证,工作最简单的方法是使用"单个用户帐户"模式(这是像老派的窗体身份验证),并使用AD作为真理的东西,如用户认证的来源(检查这 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
无论如何,如果您正在使用异构系统,如果您更喜欢使用更"安全"的东西,我建议您使用OAuth2,它作为MVC 6中的开箱即用支持.
如果要将ASP.NET身份与LDAP一起使用,则可以创建个人自定义存储提供程序,如此处所述.这并不困难,但实施起来可能还很长.
| 归档时间: |
|
| 查看次数: |
7998 次 |
| 最近记录: |