首页 文章

使用Xamarin和Asp.Net核心身份的项目架构

提问于
浏览
0

我有一个带有web api,web应用程序和Xamarin应用程序的项目 . 它们都应该使用存储在AspNetCore库中的相同数据模型 . 我想将EF Core用于数据库,我有一个Db管理项目(也是一个AspNetCore库),引用了包含上下文和设置的EF Core . web api是引用此Db Managing项目的唯一项目,因为它处理所有数据库访问 . 所有其他应用程序都在联系web api进行数据交互 .

我的问题:我想使用AspNetCore.Identity进行用户管理,但是当使用AspNetCore.Identity时,Xamarin Apps无法引用数据模型 . 我怎么解决这个问题?

1 回答

  • 6

    您的Xamarin代码应与服务器业务逻辑和数据访问完全分离 . 为什么要从Xamarin引用AspNet Identity?这是两个完全不同的层 .

    您的服务器Web API必须公开REST方法来处理身份验证/授权和其他内容,以便客户端可以使用它们(Web客户端,移动客户端,桌面客户端,等等) .

    Xamarin应该使用REST client来使用那些远程方法,就像javascript客户端一样 .

    我从您的问题中了解到,您希望在xamarin项目中重用业务对象/模型,因为它们是用C#编写的 . 但是如果这些对象依赖于asp.net身份,那么你就无法做到 . 在这种情况下,您应该map您的业务对象(BO)到Web API将用于与客户端通信的数据传输对象(DTO) . DTO与任何数据访问层完全无关,应该很简单POCO . 它们用于对json / xml进行序列化/反序列化 .

    另一方面,您不希望通过Web api“按原样”序列化用户模型,因为这意味着通过互联网发送敏感数据,如用户哈希密码等 . 您的DTO应该只包含您需要的字段客户端,映射将完成剩下的工作 .

相关问题