在 mvc 中使用 cookie

Working with cookie in mvc

我有 2 个不同的 url 可以按如下方式登录应用程序

实习生:- http://localhost:56739/trainee/Login/myclientname

对于管理员:- 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 在实习生和管理员之间得到 accessed/shared。

我对 admin/trainee 的看法不同,但它们在具有以下文件夹结构的同一项目中。 http://i.stack.imgur.com/HyOhW.png

当我在实习生和管理员之间切换时在布局页面中检查以下代码行时,尽管 admin 仍未登录到应用程序,但此 IsAuthenticated 成为现实,反之亦然。

 @if (User.Identity.IsAuthenticated)

我正在使用身份框架进行用户身份验证。

如何在 admin/trainee 之间切换时维护单独的 cookie?

感谢您的帮助!

表单身份验证 cookie 在整个应用程序中共享。不同的观点没有任何意义。

你有两个选择

1) 将它们分成两个应用程序,因此不再自动共享 cookie。

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