自从.Net Core发布以来,一直保持关注却没怎么使用过。最近某人需要一套SSO(Single Sign On,单点登录)的Web应用,所以决定研究一下Asp.Net Core。
背景:为了不重复造轮子,选择Apache2.0协议开源的OpenID Connect OAuth 2.0框架IdentityServer4和 ASP.NET Core Identity
- 两个框架都支持EntityFrameworkCore,但官方文档却只有SqlServer的说明。
- 有一篇关于ASP.NET Identity使用MySQL数据库的文档,需要的包却不支持ASP.NET Core
- MySQL的官方EntityFrameworkCore驱动还处于“预发行”的状态……不得以之下选择了一个第三方的驱动Pomelo.EntityFrameworkCore.MySql
- 由于第三方驱动使用的还是MySQL官方的Connector,此处又有巨坑 Bug #82981
- 从其他项目里复制表结构,手动创建__EFMigrationsHistory表,解决问题。
解决问题后能正常注册,OpenID登录的代码已上传到Github。
参考资料:
- IdentityServer4 Doc: https://identityserver4.readthedocs.io/en/release/
- Microsoft Docs:https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity
- stackoverflow: http://stackoverflow.com/questions/39640072/dot-net-entity-framework-database-update-doesnt-create-tables-in-mysql-database
- stackoverflow: http://stackoverflow.com/questions/40597534/ef-core-table-efmigrationshistory-doesnt-exist
Copyright © 2017 – 2018, Mjollnir. 除非另有声明,本网站采用知识共享“署名-非商业性使用-相同方式共享 3.0 中国大陆”许可协议授权。
djj到此一游?
有个问题请教,你的中这个php端,是怎么交互IdentityServer4的呢?求教
https://github.com/Mjollnirs/openid-connect-generic/blob/master/includes/openid-connect-generic-client-wrapper.php