我打算将OpenAuth身份验证添加到具有自定义成员资格提供程序的现有asp.net webforms应用程序中。这不是我在网上看到的问题(http://blogs.msdn.com/b/webdev/archive/2012/09/12/integrate-openauth-openid-with-your-existing-asp-net-application-using-universal-providers.aspx),但我无法访问OpenAuth想要添加的两个额外数据表的本地数据库。必须使用Web服务获取所有数据。有没有简单的方法来覆盖OpenAuth的数据库访问的实现,而不是使用Web服务?也许有人已经这样做了,或者对如何做到这一点有任何想法?
答案 0 :(得分:0)
我没有找到任何关于如何覆盖数据库通信以使用Web服务的线索,因此我创建了一个新的自定义类,模仿Microsoft.AspNet.Membership.OpenAuth类。我写的方法是Login,AddAccountToExistingUser,CreateUser,GetAccountsForUser和DeleteAccount。所有这些都适当调用我的Web服务,该服务将数据存储在我的自定义数据库模式中。 Login方法还调用FormsAuthentication.SetAuthCookie。
现在可以使用Microsoft.AspNet.Membership.OpenAuth的其余部分。我想所有名为 LocalPassword 的方法也应该实现,但我还没有完成。
这很可能不是最好的解决方案,但它对我有用,我现在可以使用Google等对用户进行身份验证。