jas*_*fer 0 architecture entity-framework xamarin asp.net-identity asp.net-core
我有一个带有web api,web应用程序和Xamarin应用程序的项目.它们都应该使用存储在AspNetCore库中的相同数据模型.我想将EF Core用于数据库,我有一个Db管理项目(也是一个AspNetCore库),引用了包含上下文和设置的EF Core.web api是引用此Db Managing项目的唯一项目,因为它处理所有数据库访问.所有其他应用程序都在联系web api进行数据交互.
我的问题:我想使用AspNetCore.Identity进行用户管理,但是当使用AspNetCore.Identity时,Xamarin Apps无法引用数据模型.我怎么解决这个问题?
您的Xamarin代码应与服务器业务逻辑和数据访问完全分离.为什么要从Xamarin引用AspNet Identity?这是两个完全不同的层.
您的服务器Web API必须公开REST方法来处理身份验证/授权和其他内容,以便客户端可以使用它们(Web客户端,移动客户端,桌面客户端,等等).
Xamarin应该使用REST客户端使用这些远程方法,与javascript客户端一样.
我从您的问题中了解到,您希望在xamarin项目中重用业务对象/模型,因为它们是用C#编写的.但是如果这些对象依赖于asp.net身份,那么你就无法做到.在这种情况下,您应该将业务对象(BO)映射到Web API将用于与客户端通信的数据传输对象(DTO).DTO与任何数据访问层完全无关,应该是简单的POCO.它们用于对json/xml进行序列化/反序列化.
另一方面,您不希望通过Web api"按原样"序列化用户模型,因为这意味着通过互联网发送敏感数据,如用户哈希密码等.您的DTO应该只包含您需要的字段客户端,映射将完成剩下的工作.
| 归档时间: |
|
| 查看次数: |
438 次 |
| 最近记录: |