Dou*_*oug 6 c# wcf asp.net-membership
我正在重建一个网站,我正在尝试使用SOA方法.当前网站使用的是.NET 2.0,并使用现成的SqlMembershipProvider.
我们试图消除与数据库的直接连接,并通过WCF服务层推送所有内容.我们正在使用的方法是将所有内容分开 - 有一个用于模型和接口的库,一个用于服务的库,以及一个用于服务代理的库.
到目前为止,最大的障碍是弄清楚如何管理用户身份验证及其会话.使用这种方法做到这一点的最佳方法是什么.
我们应该废弃.NET成员资格模型并使用类似OpenId的东西,并且只允许用户将他们的数据重新连接到新帐户吗?
我已经做了一些搜索,但是在如何管理它方面找不到很多,虽然我知道它已经完成了.
这就是我最终所做的,以防有人感兴趣。我开始使用 WCF 身份验证服务,但后来意识到它并没有给我想要的一切。我可以登录和注销,但仍然需要创建自己的注册方法和获取 MembershipUser。
因此,我进入 ServiceContracts 库并创建一个名为 IMembership 的接口。首先,我将其创建为一个类并从 MembershipProvider 继承,以便我可以获得为我生成的所有方法存根。生成它们后,我修改了存根并将其制作成界面。
然后我进入我的服务库并创建了接口的实现,这很简单,因为对于实现我只使用了 Membership.Provider...
然后在我的服务提供商客户端库中,我执行了 IMembership 接口的通常实现,也继承自 ClientBase<>。在它旁边,我创建了一个 WCFMembershipProvider,它实现了 MembershipProvider,并调用了我刚刚创建的 MembershipClient 中的方法。
在托管 WCF 服务的 Web 应用程序中,我在 web.config 中设置了 SQL 成员身份提供程序,然后为该服务创建了 svc 文件和端点。
在使用 Web 应用程序中,我只是将服务客户端引用添加到 svc,然后为我的 WCFMembershipProvider 设置成员资格提供程序。
还有中提琴——我在做生意。
虽然有很多重复的代码,但是效果很好。