我正在使用已经通过OAuth2进行Microsoft身份验证的Web应用程序。它包含一个Role.cs类,该类随后在服务器中用于根据每个人的角色将所有人发送到各自的页面/区域。但是,假设用户A登录并是一名教师,Role.userRole设置为教师,然后他们转到教师页面。当用户B登录时,一个学生,Role.userRole设置为Student,然后转到学生页面。但是,似乎用户B(学生)登录时,它将为每个在线用户全局更改Role.userRole。因此,当用户A(教师)命中刷新时,由于服务器将Role.userRole设置为Student,因此他们将被重定向到Student页面。反过来,这在使用Role.userRole和Role.userName时会产生冲突,因为它会将数据库条目与实际创建者不匹配,并且会将用户重定向到基于其角色不应访问的页面。
我在各处进行了一些故障排除,发现该页面实际上在哪里设置Role.userRole值。在Startup.Auth.cs中。
我在Startup.Auth.cs中包括了角色定义和设置的代码:
理想的行为是在登录时为用户设置角色,但仅为该用户设置角色,而不是为所有连接的用户设置角色。
感谢您的帮助,谢谢!
-AxelSariel