我有一个与本地Intranet Windows身份验证一起使用的ASP.NET Core 3.0应用程序,用于标识已登录的用户。使用标准的Windows身份验证行为,我可以WindowsIdentity
毫无问题地捕获用户的行为。
但是,根据用户使用Intranet浏览器自动登录(即,没有密码对话框)或使用浏览器“密码”对话框显式登录到浏览器的方式,对于用户组,我会得到不同的结果。
以下是一个API请求,它回显包括过滤后的组成员资格列表(不包括内置帐户)在内的用户信息。左边的一个是手动登录,右边的一个是自动登录。
对于显式登录,我正确地看到了该用户所属的所有自定义组。但是,对于自动登录,这些相同的组不会显示:
我还仔细查看了服务器上的User和Identity实例,它为用户引用了完全相同的SID,因此对于Group Membership返回不同的结果似乎很奇怪。
有什么想法为什么当我返回相同的帐户时组列表不同?请注意,这些组是本地的,因此由于域访问而不会成为问题。
注意:我什至在本地主机上进行测试,要对此进行测试,请在此处设置Windows代理设置:
取消选中复选框,我被迫登录。启用它们(无论如何在Chromium浏览器中),我必须在浏览器的登录对话框中明确输入我的凭据。