【问题标题】:Angular Cookies with .net Core带有 .net Core 的 Angular Cookie
【发布时间】:2019-03-21 06:47:31
【问题描述】:

我有一个 asp.net 核心 web api 和 angular 前端。应用程序向 web api 上的控制器操作发送帖子并验证用户。

我的问题是返回身份验证 cookie 并最终存储的正确方法是什么?我发现这个cookie library 似乎可以很好地满足我的目的。一些更具体的问题是:

  • cookie 应该有什么名称? GUID 可以吗?我听说过加密,或者只是一个会话 ID。 cookie 将仅通过 HTTPS 发送
  • 如何在 asp.net 核心中创建 cookie?我得到一个用户名密码,然后简单地使用 SQL 服务器验证结果,我不希望用户每次都登录
  • 如何从 http post 请求中检索 cookie?我正在使用 httpClient 发布到 url。我知道如何使用带有 angular 的 http 拦截器将其发回。

感谢您抽出宝贵时间阅读这篇长文。

【问题讨论】:

    标签: .net angular asp.net-web-api cookies


    【解决方案1】:

    首先我要警告您,使用基于 cookie 的身份验证会给您带来很多问题:

    • 由于 CORS 限制,您的应用应与您的 Web API 放在同一个域中
    • 对于移动应用,这种 cookie 方法根本不起作用

    如果你没问题,让我们开始解决你的问题:

    1. 是的,ngx-cookie-service 是一个很好的库。我用它在一些 复杂的项目
    2. 实施您自己的身份验证解决方案不是一项简单的任务,因为您需要正确实施哈希算法、cookie 和会话管理(如果您开始查看基于 cookie 的身份验证,我假设您将拥有有状态的 Web api),所以我推荐使用 IdentityServer - 它是一个非常简单的库,用于快速实现身份验证。对于大多数项目,开箱即用的设置是合适的。如果您使用此库,则无需自行操作 cookie。

    cookie 应该有什么名字?

    没关系

    如何从 http post 请求中检索 cookie?

    Cookies 由浏览器自动保存

    另外,我找到了一个很好的实现 Angular + .NET Core Web API Cookie Based auth here的例子

    【讨论】:

    • 非常感谢。我已经解决了 CORS 问题,它只是一个 Web 应用程序。我对此感到困惑。我会检查身份服务器。
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2011-10-13
    相关资源
    最近更新 更多