我正在尝试在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
。
我已经在互联网上寻找一个足够好的解决方案,试图让这种混合工作起作用,但我为了清晰而努力。在某些情况下,人们只想插入自己的工具。
答案 0 :(得分:2)
如果您拥有授权的前身,即用户必须提交的登录页面,则必须使用AllowAnonymous。如果您不允许匿名用户访问此页面,那么他们无法实际登录以获得查看页面的授权(因此您的无限重定向)。
ASP.NET Identity和Windows Auth是不同且不兼容的授权方案。您不能在同一个应用程序中同时使用它们。但可以使用ASP.NET标识并添加利用LDAP连接的自定义身份验证/授权层来检查针对AD的凭据。换句话说,如果要使用AD,则必须添加手动集成。