使用表单身份验证,是否可以在代码中切换登录用户,仅针对当前请求


在某些情况下

,我希望请求以与实际登录的用户不同的用户身份执行。 因此,当用户 A 请求特定页面时,我想从代码中切换它在用户 B 的用户帐户下执行 - 仅适用于此单个请求(甚至单个代码块......

我用过这个:

FormsAuthentication.SetAuthCookie("UserB")

这有效,但它是持久的。 当我请求新页面时,我现在以用户 B 身份登录,这不是我想要的。

这可能吗? 我为此上下了RTFM。

编辑:我可能已经找到了一个答案,我在下面发布了答案。 寻求此解决方案的确认或反驳。

我想

我可能已经找到了。 我不是 100% 确定,但这有效。 我只是不知道这是否完全正确,或者是否有我没有考虑的事情。

HttpContext.Current.User = PrincipalInfo.CreatePrincipal("UserB");

同样,这似乎做了我最初想要的。 如果您有经验可以证明我的对错,请发表评论。

最新更新