从 Xamarin 对 Asp.NET CORE Web 应用程序进行身份验证

Posted

技术标签:

【中文标题】从 Xamarin 对 Asp.NET CORE Web 应用程序进行身份验证【英文标题】:Authenticating Asp.NET CORE web application from Xamarin 【发布时间】:2017-02-21 04:44:14 【问题描述】:

我有一个具有内置身份验证的 ASP.NET Core Web 应用程序。

如何通过 Web 应用验证 Xamarin 本机移动应用并使用 Web 服务?

是否有任何用于验证 Microsoft Identity Server 的 Xamarin 库?

我发现一篇描述在 ASP.NET 核心中创建 Web 服务后端的文章,但它省略了身份验证(为什么?):

https://docs.microsoft.com/en-us/aspnet/core/mobile/native-mobile-backend

【问题讨论】:

【参考方案1】:

在他们使用 Web API 模板的文章中,问题是 ASP.NET Core 确实支持通过盒子进行个人身份验证(至少目前如此)

看看这个项目OpenIddict。它非常易于使用,并且有很多示例如何基于 ASP.NET Core Web API 构建自己的身份验证服务。这个项目只有一个缺点(我认为)——OpenIddict 只支持EF Core 作为数据访问库,但您可以实现自己的提供程序。

【讨论】:

说明 EF 是对象关系映射器,而不是数据库提供程序。您可以简单地将其配置为使用另一个数据库,例如 PostgreSQL,而不是 SQL。 可能不清楚,但提供者我的意思不是 EF,我的意思是 OpenIddict 数据提供者,如果您想使用 OpenIddict 和 EF 6.x 作为示例,那么您必须实现自己的数据提供者对于 OpenIddict。【参考方案2】:

Microsoft Identity Server 本身没有 Xamarin 客户端,但您可以使用 oAuth2。挺标准的

实现像OpenIddict、IdentityServer 或AspNet.Security.OpenIdConnect.Server 这样的oAuth2 服务器,您可以使用任何oAuth2 客户端进行身份验证,无论是通过javascript 应用程序还是Xamarin。

对于 Xamarin/.NET 客户端,有一个很棒的客户端 (PCL),称为 IdentityModel。

【讨论】:

以上是关于从 Xamarin 对 Asp.NET CORE Web 应用程序进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

仅 xamarin 表单应用程序的 Asp.net Core 授权失败

Xamarin Android 使用 Asp.Net core web api 连接到 Azure Notification Hub [关闭]

Docker容器运行ASP.NET Core

通过 FireBase 触发从 ASP.Net Api 到 Xamarin.Android 应用程序的推送通知

ASP.NET 开发者 开始学习ASP.NET Core 2吧

Linq 查询在 ASP.NET-Core 3.0 及更高版本中对数字等字符串进行排序