我正在编写一个使用 .NET Windows 身份验证的 Web 应用程序,它依赖用户的组成员身份来授权他们访问网站的各个区域。目前,我在一台不属于域且不使用 AD 的开发机器上,而是只使用本地用户组。总的来说,这运行良好。
但是,当我测试应用程序时,我需要在我的用户帐户中添加和删除角色以验证一切是否正常。当我添加角色时,它似乎不会传播,直到我注销 Windows 并再次登录。
是否有可能无需注销即可强制更新组成员身份?
答案1
taskkill.exe /F /IM explorer.exe
runas /user:%USERDOMAIN%\%USERNAME% explorer.exe
这将终止浏览器,然后使用您的用户帐户重新打开...它将提示您输入密码,并为您获取一个新令牌,从而更新您的会员资格。
答案2
这在系统范围内执行起来很困难,但可以通过终止其进程并在用户凭据下重新启动单个可执行文件来实现。
登录后,您会收到一个令牌,其中反映了您的群组成员身份等信息。刷新此令牌的唯一方法是登录。
答案3
我遇到过类似的情况,一个网站依赖用户在 AD 中的成员身份来允许登录网站。要考虑做的一件事是让 Web 服务器使用其提供的凭据对 AD 服务器进行身份验证/查询;如果 Web 服务器有权访问 AD 并仅向服务器查询用户是否属于 XYZ 组,他们将直接从 AD 获得列表,而不是从用户的登录令牌获得列表,因为登录令牌需要登录/注销才能获得具有适当权限的新令牌。
我从描述中知道您现在的开发机器没有该访问权限,但听起来您的意思是当您部署它时您需要此功能。
如果您依赖令牌,则必须注销并重新登录。
答案4
- 打开任务管理器
- 杀死Explorer.exe(每一个)
- 单击文件 > 新建任务(运行...)
- 输入CMD
- 在命令提示符中输入“RunAs /user:\ explorer.exe
完毕。