【发布时间】:2021-12-30 16:54:31
【问题描述】:
我目前正在开发一个使用来自 .net 核心 API 的数据的 Xamarin 表单。
对于 API 方面,我使用 Abp framework。
通过使用这个reference,我可以使用来自 API 的数据。
但在本例中,用户需要使用管理员凭据登录。
我需要做的是,我只需要在不登录的情况下使用 API 中的数据。
如果我在需要访问的 API 方法上添加 [AllowAnonymous] attribute 是否正确?
这是他们展示的例子,
var accessToken = await _loginService.AuthenticateAsync();
var httpClient = GetHttpClient(accessToken);
有没有像只使用clientId/secrets而不使用accessToken的例子?
【问题讨论】:
-
来自您发布的链接:“AllowAnonymous 禁止身份验证。因此,包括未经授权的用户在内的所有人都可以使用 GetAsync 方法。”。这听起来正是你想要的。你试过了吗?
-
@Jason,是的,我已经尝试过了,没关系。我想知道的是 API 安全性。假设我想从手机上使用这个方法,我还需要配置客户端 ID 和机密吗? clientId/secrets 代表什么?
-
好吧,很明显,如果您禁用身份验证,那么正如文档所说,API“对所有人都可用,包括未经授权的用户”。我在文档中没有看到任何提及 clientid/secrets 的内容。
-
阅读 ABP 文档,听起来像是基于 asp.net 核心认证。为了您的目标,我认为您首先在您的服务器上手动创建一个用户和密码,您的应用程序将使用该用户和密码来发出请求。您发送该用户+密码,就好像该用户正在登录一样。Here is an ASP.NET Core tutorial 使用此技术 - 请参阅请求正文中提到的 json 用户名密码。我不知道你是如何适应 ABP 的。
标签: api security .net-core xamarin.forms abp