Windows 如果我添加过滤器,MVC 5 上的身份验证要求登录并拒绝有效用户
Windows Auth on MVC 5 asks to log in and denies valid user if I add filters
我正在处理一个必须根据我们的目录对用户进行身份验证的内部项目。最初这是在进行以下更改:
Web.Config
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
我会在每个控制器中添加
[Authorize(Roles = @"DOMAIN\Group1, DOMAIN\Group2, DOMAIN\Group3")]
我在 proj 文件中启用了 windows 身份验证并禁用了匿名身份验证
然后我遇到了第 2 组和第 3 组的人无法访问的问题。
在回去测试为什么这是问题时,它已经退化到无法工作的地步。它现在要求我使用旧方法登录,如果输入正确的域凭据,甚至拒绝访问与之关联的帐户。
从现在到我最后一次测试的唯一变化是我们的办公室搬家了,我不得不重置我工作的虚拟机。在客户端,什么都不应该改变。
这是我迄今为止尝试过的方法以及失败的原因:
- 我试过设置全局身份验证过滤器。基于它要求我输入凭据,我认为这是正确的,但我可能有问题。
// In filters.config
filters.Add( new AuthorizeAttribute() { @"DOMAIN\Group1, DOMAIN\Group2, DOMAIN\Group3" });
- 我已经尝试在 web.config 中添加允许的角色列表,尽管通过一些阅读我发现在 MVC 3 之后不推荐这样做。
- 我试过将文字字符串更改为普通字符串并将反斜杠加倍,但没有改变
- 我还做了一个测试,通过删除授权限制并通过下面的代码检查用户来确保我是正确的用户。它返回 CorrectDomain\MyUserName,所以我似乎仍然可以访问该域。
user = System.Web.HttpContext.Current.User.Identity.Name;
感谢任何建议,到目前为止,我已经在这上面花了 2 天时间,但再也找不到提供任何新尝试的文章或以前的问题。如果需要任何代码片段来帮助查找问题,我可以提供。
看来这与我在新办公室的网络连接有关。我与我的域断开连接。使用这段代码来验证我不在 forest/domain.
Forest forest = Forest.GetCurrentForest()
它抛出一个错误,说我没有当前域。
我猜其他 2 个组未验证的错误与组名有关,但那是另一个问题。
我正在处理一个必须根据我们的目录对用户进行身份验证的内部项目。最初这是在进行以下更改:
Web.Config
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
我会在每个控制器中添加
[Authorize(Roles = @"DOMAIN\Group1, DOMAIN\Group2, DOMAIN\Group3")]
我在 proj 文件中启用了 windows 身份验证并禁用了匿名身份验证
然后我遇到了第 2 组和第 3 组的人无法访问的问题。 在回去测试为什么这是问题时,它已经退化到无法工作的地步。它现在要求我使用旧方法登录,如果输入正确的域凭据,甚至拒绝访问与之关联的帐户。
从现在到我最后一次测试的唯一变化是我们的办公室搬家了,我不得不重置我工作的虚拟机。在客户端,什么都不应该改变。
这是我迄今为止尝试过的方法以及失败的原因:
- 我试过设置全局身份验证过滤器。基于它要求我输入凭据,我认为这是正确的,但我可能有问题。
// In filters.config
filters.Add( new AuthorizeAttribute() { @"DOMAIN\Group1, DOMAIN\Group2, DOMAIN\Group3" });
- 我已经尝试在 web.config 中添加允许的角色列表,尽管通过一些阅读我发现在 MVC 3 之后不推荐这样做。
- 我试过将文字字符串更改为普通字符串并将反斜杠加倍,但没有改变
- 我还做了一个测试,通过删除授权限制并通过下面的代码检查用户来确保我是正确的用户。它返回 CorrectDomain\MyUserName,所以我似乎仍然可以访问该域。
user = System.Web.HttpContext.Current.User.Identity.Name;
感谢任何建议,到目前为止,我已经在这上面花了 2 天时间,但再也找不到提供任何新尝试的文章或以前的问题。如果需要任何代码片段来帮助查找问题,我可以提供。
看来这与我在新办公室的网络连接有关。我与我的域断开连接。使用这段代码来验证我不在 forest/domain.
Forest forest = Forest.GetCurrentForest()
它抛出一个错误,说我没有当前域。
我猜其他 2 个组未验证的错误与组名有关,但那是另一个问题。