在mvc中使用cookie



我有两个不同的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就不会再自动共享了。

2)按照评论中的建议,为管理员帐户分配角色或声明,然后在授权属性或策略中检查。

相关内容

  • 没有找到相关文章

最新更新