我想使用Silverlight / Connect / Passport(我是否想念任何人?)与Silverlight / RIA的身份。
这有许多优点:
现在,RIA使用ASP.NET中的成员资格堆栈,默认情况下会回退到SQL Server中的aspnetdb。
我正在考虑实施MembershipProvider。到目前为止,我已经设置了适当的引用并覆盖了MembershipProvider,让IDE存根需要实现的所有方法。
我已将EnablePasswordReset和EnablePasswordRetrieval设置为false,因为我的应用不提供这些服务。 ValidateUser(用户名,密码)已实现并正常工作,使用WebClient将检查委派给Microsoft的服务器。然而,大量的方法仍然存在,都威胁到NotImplementedException,我不知道RIA可能会调用哪些方法。这导致我......
有没有人知道我实际需要实施的MembershipProvider有多少,因为用户帐户管理完全委托给Passport?
我认为即使授权身份验证和帐户管理,也可以谨慎地缓存凭据。一旦建立了身份,最好是在没有互联网连接的情况下使用它。例如,当没有Internet连接时,您仍然可以使用Passport凭据登录Surface RT。
也许我应该从SqlMembershipProvider继承,以便ValidateUser检查用户名是否是本地已知的,如果没有尝试使用Passport的凭据,并且 - 如果它们通过 - 隐式创建本地用户,如果它确实存在但凭据失败,如果本地密码是陈旧的,请用护照检查,如果Passport接受密码则更新它。
如果您喜欢这个主意,请征求您的意见。
答案 0 :(得分:0)
使用Custom MembershipProvider,您只需要实现
另一个想法,使用LiveID,它支持安全令牌服务,因此您可以使用Windows Identity Framework查看此处 Getting Live ID to work via WIF