如何在MVC ASP.NET Identity 2.0中添加冒名顶替功能?

 2023-02-15    282  

问题描述

我想知道如何在MVC身份2.0上添加用户模拟2.0,我看到一些人使用这个:

FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(user.UserName, false);

这不会为我工作它不会退出我使用:

如何在MVC ASP.NET Identity 2.0中添加冒名顶替功能?

AuthenticationManager.SignOut()

所以我如何继续这样做,我有管理面板是什么列出了用户,我得到了UserID或用户名,我到底要做什么?我从未使用过索赔,所以我不明白我不需要回归用户他们现在可以注销.

推荐答案

以下是其他人的解决方案 – :

var user = _db.AspNetUsers.Single(a => a.Id == id);

var impersonatedUser = UserManager.FindByName(user.Email);

var impersonatedIdentity = UserManager.CreateIdentity(impersonatedUser, DefaultAuthenticationTypes.ApplicationCookie);

AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = false }, impersonatedIdentity);

其他推荐答案

谢谢您的问题,因为它帮助我找到了许多解决方案,包括您的和@trailmax.经过一些人以为我走过这种不同的方式,因为我只需要改变一些索赔来做冒充.我称之为这个半模拟,因为它只是改变了一些东西而不是完全改变用户.

就像trailmax我已经写了一个博客在我的方法上发布所有代码.下面我总结了它的工作原理.

  1. 我添加一个会话 cookie 具有模拟信息,我需要更改当前用户,以允许它们访问属于另一个用户的信息.我是我的案子我有一些数据的关键.

  2. 我然后使用新的mvc的5 身份验证Filter Ona认真化方法到a)寻找模拟饼干.如果发现它,则它将索赔中的权利要求改变了滤波器,然后将通过应用程序传播.

  3. 通过删除Cookie来实现超出模拟模式的

  4. 通过将其到期日期在现在将其到期日期设定为日期来实现.

优势在于对访问级别的控制得多,但它在所有情况下都不适用.在我的文章我比较我的使用@ trailmax的方法来带出每个实现的好处.

以上所述是小编给大家介绍的如何在MVC ASP.NET Identity 2.0中添加冒名顶替功能?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33802.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。