gpt4 book ai didi

asp.net - 通过 WEB API 使用 ASP.NET Identity 进行本地登录

转载 作者:行者123 更新时间:2023-12-02 03:24:37 26 4
gpt4 key购买 nike

我想将 ASP.NET 身份用于一个项目,该项目是在前端使用 MVC5 设置的,具有物理上分离的业务逻辑服务器。 BL服务器是唯一可以直接访问DB服务器的服务器。

为了设置它,我认为我可以采用以下两种方式之一:

  1. 从前端使用 ASP.NET Identity,但使用自定义 IUser*Store 来调用 Web API,而不是直接调用数据库。 Web API 将在 BL 服务器上运行并实现数据访问 (EF)。
  2. 通过 WEB API 从 BL 使用 ASP.NET Identity,但让它提供 DTO(实际上,只是将传递给 View 的模型)。 MVC 层将仅使用来自 ViewModel 的数据调用 Web API,然后 Web API 将返回将传递给 View 的模型(MVC 层实际上只是一个传递)。我可能会使用与 ViewModel 略有不同的 DTO,然后让 MVC 层创建 ViewModel,但这不会改变整体要点。

我想也许第一个选项更简洁,但我如何在该后端 Web API 上使用声明授权?我希望能够传递某种 token ?谁生成它,我如何让 Web API 使用它(即,从 header 中提取 access_token 并创建一个 ClaimsPrincipal)?

我对第二个选项的担心是它没有直接登录调用,它只有 token 支持,所以我不知道我是否仍然可以用相同的方式管理用户的登录状态,或者如果我真的应该这样做(我需要完全访问常规用户管理内容,例如更改密码、双重因素、锁定帐户等)

如能提供有关正确方法的任何指导,我们将不胜感激。

最佳答案

我最终选择了选项 1。我从 IUser*Store 实现调用 Web API。

我通过使用 IdentityServer 发出 access_token 解决了 ClaimsPrincipal 问题。 Web API 可以轻松地使用这些 token 并为我构建我的 ClaimsPrincipal,然后我可以随心所欲地使用这些声明。就我而言,我使用 AuthorizationManager 进行集中访问检查。

希望对您有所帮助!

关于asp.net - 通过 WEB API 使用 ASP.NET Identity 进行本地登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com