使用ASP.Net Identity时如何获得AD用户

时间:2017-07-03 13:31:03

标签: asp.net-mvc authentication iis asp.net-identity windows-authentication

我正在尝试在mvc 5 asp.net vb.net内部网站点中获取当前窗口(AD)用户的详细信息。

当我开始这个项目时,我将我的身份验证设置为个人帐户,假设我仍然可以获取Windows用户信息。但我没有运气。当我在调试中使用visual studio时,我可以获得这些信息。但是此信息将替换为IIS中的apppool的身份名称。

我的Intranet站点目前设置为使用以下配置。

<authentication mode="Windows" />
    <authorization>
        <allow users="*"/>      
        <!--<deny users="?"/>-->
</authorization>

我的应用程序设置为使用匿名和Windows身份验证。如果我关闭匿名,我会开始query string too long。当尝试创建返回URL时,它开始进入无限循环。这真令人讨厌。

反正。对我来说,概念是:如果用户是Windows AD用户,他们可以访问我的登录页面,如果正确的凭据,他们可以使用该网站其他被踢出。所以有点像双因素身份验证。

我已经决定允许匿名者支持获取广告信息,然后根据我可以拒绝或允许访问。我打算将此信息放在我的登录控制器中signinstatus.success = true

我已经在互联网上寻找一个足够好的解决方案,试图让这种混合工作起作用,但我为了清晰而努力。在某些情况下,人们只想插入自己的工具。

1 个答案:

答案 0 :(得分:2)

如果您拥有授权的前身,即用户必须提交的登录页面,则必须使用AllowAnonymous。如果您不允许匿名用户访问此页面,那么他们无法实际登录以获得查看页面的授权(因此您的无限重定向)。

ASP.NET Identity和Windows Auth是不同且不兼容的授权方案。您不能在同一个应用程序中同时使用它们。但可以使用ASP.NET标识并添加利用LDAP连接的自定义身份验证/授权层来检查针对AD的凭据。换句话说,如果要使用AD,则必须添加手动集成。