网络应用程序:允许超级用户使用假冒其他用户-还有一个设计图案为这个?
题
- 在我的网络应用程序,我想让超级用户使用假冒其他用户。
我的问题:
是否有一个普遍接受的设计图案,我可以用来让这种事发生?
- 一般来说,我可以想象我将需要跟踪当前用户和模拟用户的内部会议。
但你可以明白,我想尽量减少复杂性附于本改变。
顺便说一下,我应用程序是ASP.NET 视2应用,所以如果我可以利用任何现有的基础设施,这将是巨大的。
编辑: 我使用的形式的认证。
编辑: 我也需要跟踪这一事实,一个超级用户代表另一个用户。我会需要这样做有两个原因:
- 日志应记录事实上,一个超级用户担任代表的另一个用户。
- 它可以想象,超级用户将要返回模拟视"关方面"和模拟的另一个用户。
编辑: @杜若尔当提出一个 大多是可行的解决方案.我唯一担心的是以下如果超级用户(同时假冒其他用户)导航到主屏幕上,并在屏幕上说'你好[User]',我想要它说'你好[模拟用户]'反对'Hello[超级用户]'.我怕,@杜若尔当的解决方案将使执行这个屏幕和其他屏幕与类似的要求更加复杂。
解决方案
不要假冒其他用户使用,但得到的超级用户足够的授权和独特的接口,以便它们可以作用于其他用户的数据。
如果你再有伐木或审计数据,你知道的用户(正常的或超级)采取行动的数据。
其他提示
[Authorize(Roles = "Admin")]
public ActionResult Impersonate(string username)
{
FormsAuthentication.SignOut();
var cookie = FormsAuthentication.GetAuthCookie(username, false);
Response.AppendCookie(cookie);
return RedirectToAction("index");
}
不隶属于 StackOverflow