有几种在ASP.net网站上使用OpenID的方法,但他们似乎都没有使用现有的会员资格和身份验证提供商机制.
我不知道创建一个完全依赖于OpenID的站点的正确方法是什么?继续使用表单身份验证,但实现对OpenID进行查找的sqlMembershipProvider的变体?
或者我会更深一层,写我自己的FormsAuthenticationModule?这似乎有点太笨,因为(据我所知),表单验证可以查找任何数据源.
还是有第三种方法,保持FormsAuthenticationModule,但是使其对OpenID进行查找?
因为这是一个ASP.net MVC应用程序,我没有用于内置的登录WebForms控件,如果这有所作为.
解决方法
ASP.NET定义的Membership API根本不符合OpenID,这可能是为什么您看不到使用它的许多系统.我还没有看到需要使用OpenID的会员资格提供商,所以它并没有真正成为一个问题.试图使会员资格提供者模式符合OpenID的一个项目是
http://code.google.com/p/dotnet-membership-provider/,但最近似乎并没有被维护.
正如womp所说,你不需要重做FormsAuthenticationModule.它与OpenID非常好.
查看DotNetOpenAuth附带的project templates,以查看如果没有会员提供商的事情可以工作.