如何在 Windows 7 中强制更新用户的组成员身份?

kin*_*ngo 31 windows-7 groups authorization

我正在编写一个 Web 应用程序,它使用 .NET Windows 身份验证并依赖于用户的组成员身份来授权他们访问网站的各个区域。现在我在一台不属于域并且不使用 AD 的开发机器上,相反我只是使用本地用户组。一般来说,这可以正常工作。

但是,当我测试应用程序时,我需要在我的用户帐户中添加和删除角色以验证一切正常。当我添加角色时,它似乎不会传播,直到我注销 Windows 并再次登录。

是否可以在无需注销的情况下强制更新组成员身份?

小智 27

taskkill.exe /F /IM explorer.exe
runas /user:%USERDOMAIN%\%USERNAME% explorer.exe
Run Code Online (Sandbox Code Playgroud)

这将杀死资源管理器,然后使用您的用户帐户重新打开......它会提示您输入密码,这将为您提供一个新令牌,从而更新您的会员资格。

  • 这似乎确实有效,但我发现任何映射的驱动器连接都被破坏了。 (2认同)
  • 在 Windows 10 专业版中对我不起作用 (2认同)

MDM*_*rra 10

这很难在系统范围内执行,但可以通过终止进程并在用户凭据下重新启动单个可执行文件来实现。

当您登录时,您会收到一个反映您的组成员身份的令牌。刷新此令牌的唯一方法是登录。

  • @kingdango,您始终可以使用 `runas` 以与您自己不同的用户身份运行该进程,并操纵该测试用户的组成员身份。每次使用 `runas` 关闭并重新启动进程时,它应该创建一个新会话,*应该*反映更改的组成员身份。我没有测试过这个,但理论上它应该这样工作。 (2认同)

Bar*_*rim 5

我有一个网站的类似情况,该网站依赖于用户在 AD 中的成员身份来允许登录该网站。需要考虑的一件事是让 Web 服务器使用他们提供的凭据对 AD 服务器进行身份验证/查询;如果 Web 服务器有权访问 AD 并且只是查询服务器是否用户在 XYZ 组中,他们将直接从 AD 获取列表,而不是从需要登录/注销才能获得新用户的登录令牌具有适当权限的令牌。

我现在从描述中知道你的开发机器没有那个访问权限,但听起来你的意思是当你部署它时你需要这个功能。

如果您依赖令牌,则必须注销并重新登录。

  • 它也可以派上用场,具体取决于场景。如果服务器直接查询 DC,这意味着更改几乎立即“迁移”,因此如果有人访问被切断或添加,则不需要客户端登录/注销周期。这让他们的 IT 员工更容易一些。 (2认同)

Nix*_*hoe 5

有一种脚本化的方法可以完全通过命令行来完成此操作;你可以使用klist

klist purge
Run Code Online (Sandbox Code Playgroud)