我应该为ASP .NET MVC应用程序使用内置成员资格提供程序吗?

Pra*_*bhu 14 .net c# asp.net asp.net-mvc dotnetopenauth

到目前为止,我一直在使用自定义成员资格提供程序进行身份验证.我即将开始使用MVC开发我的第一个网站.我想知道我是否应该使用ASP .NET MVC附带的内置成员资格提供程序,或者我是否应该创建自己的.我的网站需要与openid,facebook,google等集成以进行身份​​验证和api访问的openauth.我想知道根据我的需要使用内置的那么容易.

Pur*_*ome 25

就个人而言,我讨厌使用ASP.NET Membership provider核心框架中可用的... 当它持续存在于SQL SERVER数据库中时.所有表格和视图对于单个网站来说都是一种过度杀伤力.对于托管公司?..也许......但是对于我所做的所有企业网站来说......这是一种过度杀伤和麻烦.至于实际的提供者界面等...它非常好..但仍然非常硬核等等.对于简单中型网站,IMO来说是一种过度杀伤力.

所以个人而言,我会使用一些简单的自定义代码来处理大多数基本媒体网站的成员资格持久性.

这就是你的第二个问题:OpenId.使用Andrew Arnott的DotNetOpenAuth .NET框架 - >它就是Kicks Serious Ass(tm).使用它与将用户成员资格数据保存到存储库的方式无关.IE浏览器.如果您继续使用Sql Server + ASP.NET成员资格提供程序,您仍然可以(并且应该)使用DotNetOpenAuth.如果您有一种简单的自定义方式将用户详细信息保存到数据库(这就是我所做的),您仍然可以使用DotNetOpenAuth - 两者相互独立.

所以,IMO,不要使用过于复杂的ASP.NET Membership + Sql Server的东西,而是使用一两个简单的表来保存自己的用户详细信息.接下来,你必须使用DotNetOpenAuth来处理任何OpenId(StackOverflow使用DotNetOpenAuth来处理他们的OpenId登录).

祝好运 :)

(我确信我的ASP.NET成员资格提供程序+ Sql Server的操作会保留这些信息会导致一些人产生书呆子,这里).

  • +1 - 我真的很喜欢你的答案,因为它证明了使用正确的工具.我见过许多项目,其中包含过于复杂的附加组件,这些附加组件对于应用程序的需求完全过度.在几乎所有我经历过这种情况的情况下,通常会发现开发人员想要一个新的玩具......而不是真正考虑这项工作是否正确. (2认同)

Cra*_*ntz 13

如果你不得不问,你不应该写自己的提供者.做好安全工作真的很难.做错了非常容易.

但好消息是,你想要的东西是非常普遍的,并且有经过测试的现成工具已经做到了.Janrain就是一个例子.还有其他人.尽可能使用现有的,经过验证的工具.


p.c*_*ell 8

看看NerdDinner发生了什么.他们最近(6个月前)与OpenID集成,谷歌,雅虎作为特色提供商.他们仍然允许所有"原生"登录.以下是允许用户以不同方式进行身份验证的站点示例.

如果你可以镜像他们的一些功能,你就可以在Facebook,OpenAuth等上滚动.最大的好处是它已经在ASP.NET MVC中实现了,你只需要借用一些实现.