从 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 [关闭]
通过 FireBase 触发从 ASP.Net Api 到 Xamarin.Android 应用程序的推送通知