首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET 5/ MVC 6现场活动目录

问ASP.NET 5/ MVC 6现场活动目录
EN

Stack Overflow用户
提问于 2016-01-17 02:36:22
回答 3查看 9.2K关注 0票数 13

对于早期版本的.NET应用程序模板(即4.5.2 ),您可以创建一个新的网络应用程序,将身份验证更改为“Work and School Account”,并选择“就地”。在.NET 5网络应用模板中,“工作和学校帐户”选项没有“就地”选项。

如何使用.NET 5中的本地Active (LDAP)使用ASP.NET标识进行身份验证。要明确的是,我不需要Windows身份验证,我希望让用户输入他们的凭据,并根据现场AD处理身份验证。IOW,用户不需要登录到windows机器,他们可以从他们的移动设备访问等等。

我已经找了好几个小时了,但如果答案就在某处,我就不会感到惊讶了。任何帮助都是非常感谢的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-17 09:09:01

LDAP和就地身份验证并不是一回事,这就是为什么IMHO,在店内模式已经不再是“开箱即用”的选择,也是因为微软几乎不想让每个人都搬到Azure云上:)

现场模式(如您所见,这里)是一种使用AD作为联邦提供者的方法(在SF上检查一下),比如Twitter或Facebook,如果您愿意的话;您可以在本地使用ADFS (如果您的AD支持它),或者在云中使用ADFS(使用Azure)。

如果您正在寻找LDAP身份验证,最简单的工作方法是使用“单个用户帐户”模式(类似于旧的学校表单auth),并使用AD作为用户身份验证的真实来源,例如(请查看这因此文章):

代码语言:javascript
复制
    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一起使用,您可以创建您的个人自定义存储提供程序,作为完美解释的这里。这并不困难,但可能需要很长时间才能实现。

票数 10
EN

Stack Overflow用户

发布于 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:你不能。

票数 1
EN

Stack Overflow用户

发布于 2016-01-17 02:41:17

我不知道任何模板或任何东西,但是我按照本指南使用oAuth2和Owin设置了自己的身份提供程序。

http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-and-identity-2/

然后,为了对active目录进行身份验证,我创建了自己的用户存储和用户管理器,并使用来自UserPrincipal程序集的PrinipalContext和Directory.Masnagement类手动进行了验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34834504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档