我有两个不同的url登录到应用程序,如下所示
培训生:- http://localhost:56739/trainee/Login/myclientname
For Admin:- http://localhost:56739/admin/Login/myclientname
我正在使用下面的默认登录实现登录到应用程序
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: true);
我观察到的方法PasswordSignInAsync
正在为登录用户创建cookie。
然而,我的问题是,如果我使用trainee
url登录,并试图访问admin
url,那么用户直接登录到管理应用程序,而不要求登录,因为cookie。意味着cookie在实习生和管理员之间被访问/共享。
我对admin/trainee
的看法不同,但它们在同一个项目中,文件夹结构如下。https://i.stack.imgur.com/HyOhW.png
当我在培训生和管理之间切换时,在布局页面中检查下面一行代码时,尽管admin
仍然没有登录到应用程序中,但这个IsAuthenticated
实现了,反之亦然。
@if (User.Identity.IsAuthenticated)
我正在使用身份框架进行用户认证。
如何在admin/trainee
之间切换时保持单独的cookie ?
谢谢你的帮助!
表单身份验证cookie在整个应用程序中共享。不同的观点没有任何意义。
你有两个选择
1)将它们分成两个应用程序,这样cookie就不会再自动共享了。