Asp.net 多个用户使用相同的浏览器asp标识

Asp.net 多个用户使用相同的浏览器asp标识,asp.net,cookies,asp.net-identity,owin,Asp.net,Cookies,Asp.net Identity,Owin,我们有一个应用程序,它有两种用户类型。其中一个是管理员,另一个是客户端。我们正在使用AspNet标识对用户进行身份验证并发出cookie。 但是,存在管理员和用户共享同一浏览器的情况。当客户端登录时,cookie将被覆盖,当返回到管理员页面时,我们将丢失身份验证。反过来也会发生同样的情况(先登录客户端,然后登录管理员)。 是否有办法在同一浏览器上同时支持多个经过身份验证的用户? 问候语。 路易斯。不,浏览器不了解任何用户。您设置了cookies,浏览器会发回这些cookies。然后,应用程序接收

我们有一个应用程序,它有两种用户类型。其中一个是管理员,另一个是客户端。我们正在使用AspNet标识对用户进行身份验证并发出cookie。 但是,存在管理员和用户共享同一浏览器的情况。当客户端登录时,cookie将被覆盖,当返回到管理员页面时,我们将丢失身份验证。反过来也会发生同样的情况(先登录客户端,然后登录管理员)。 是否有办法在同一浏览器上同时支持多个经过身份验证的用户? 问候语。
路易斯。

不,浏览器不了解任何用户。您设置了cookies,浏览器会发回这些cookies。然后,应用程序接收并检查这些cookie,以便在下一个请求中确定当前用户

浏览器无法知道应该发送回哪些cookie,服务器也无法知道正确的用户是什么,只能阅读这些cookie。为什么您希望两个不同的用户类型共享相同的浏览器窗口?这破坏了整个安全模型


如果两个人必须共享同一台设备,那么现在大多数浏览器都支持私有窗口或单独的“配置文件”,这样您就可以在不共享任何数据的情况下拥有完全独立的首选项和会话。这里有一个链接指向Chrome的配置文件功能:

支持在同一浏览器上同时使用多个经过身份验证的用户
您是否正在尝试实现模拟?不是真的,我只希望在同一应用程序上同时使用两个用户,这是不可能的。不在标识中,不在任何其他web应用程序中。您可以是管理员或用户。在成为其他用户之前需要注销。如果两者同时存在,应用程序如何知道哪个用户正在使用系统?我已经为应用程序中的每个用户创建了一个单独的cookie。我并不想让浏览器决定发送哪个cookie,而是让应用程序决定将哪个cookie转换为经过身份验证的用户。我们能在asp身份上拦截cookie-identity转换过程吗?听起来不对。您不应该为每个用户创建单独的cookie,应该使用一个cookie名称,并且该值(已加密)包含用户id和任何其他缓存信息,如角色和声明
ASP.NET Identity
自动执行所有操作,或者您可以使用
Cookie身份验证
作为较低级别的API,它只管理Cookie,您必须自己添加密码验证、角色和声明结构。应用程序如何知道是“用户”还是“管理员”在查看页面?在我的应用程序中,路由只能由一种类型的用户使用。因此,我的想法是,如果请求中同时存在两个cookie,请确定调用的路由,并根据该路由决定将使用哪个用户。