如何在没有asp成员资格的情况下完全自定义身份验证

时间:2013-02-18 20:25:25

标签: c# asp.net asp.net-mvc authentication asp.net-membership

我不想学习如何为asp mvc进行完全自定义的身份验证/授权 这么简单的行动:注册/登录/退出/记住我 我不想再使用asp成员资格了,但是我无法在网上找到任何关于如何制作这个内容的教程。
我有点困惑。如果我做了所有自定义操作,我仍然需要使用SetAuthCookie()等 所以我不想自定义MembershipProvider,而是自己进行授权/认证 我正在寻找的是一些完整的资源(如果存在)? 我真的需要这个主题的帮助,所以我感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

你不想这样做。

开发自己的会员类的问题在于,99.999%的时间您将无法获得安全,安全,健壮且可靠的框架。 (另外0.001%的时间你是第三方雇用的专家来做这件事。)

我知道,MembershipProvider很笨拙,臃肿,不像应该的那样灵活。但它非常安全,比你能写的任何东西都要安全得多。风险并不值得......在开发自己的风险时,您可能会失去对网站,数据以及最重要的客户数据的控制权。

坚持下去。否则你会感到抱歉。

答案 1 :(得分:1)

我有同样的想法@levibotelho,如果你不是100%肯定是不安全的。另一方面,您可以在http://nugetmusthaves.com/Category/Security中找到许多项目 示例包括:http://altairiswebsecurity.codeplex.com/https://github.com/kristofferahl/FluentSecurity等等......

可能是这一个:https://github.com/OdeToCode/Memflex brgds!

更新:@ 1110如果你想直接访问表我建议你使用simplemembership而不是旧的会员提供者。 http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx。同样的事情,如果你需要在配置文件中有客户字段而不是blob等等...

答案 2 :(得分:1)

首先,ASP.NET成员资格和表单身份验证的速成课程。

直接来自提供者(Microsoft):

“ASP.NET成员资格为您提供了一种验证和存储用户凭据的内置方法。因此,ASP.NET成员资格可以帮助您管理网站中的用户身份验证。您可以使用ASP.NET的ASP.NET成员资格。 NET通过使用ASP.NET登录控件来形成身份验证,以创建用于验证用户身份的完整系统。“

请注意,您“可以使用ASP.NET表单身份验证的ASP.NET成员资格”。它们是不同的元素。认证部分是你不想搞砸的东西,这是我认为LeviBotelho(正确)紧张的部分。但你可以正确使用没有会员资格的表单身份验证!

作为Scott Mitchell points out,在ASP.NET 2.0之前,我们甚至没有拥有 Membership。他自己(现在已经很老了)article over on 4guysfromrolla提供了一个基于角色的授权示例,它使用Membership结合了表单身份验证和。对此没有任何内在的不安全或风险。

如果你 冒险离开Membership模式/框架,那么下一个最重要的事情就是密码安全。您的第一个诱惑可能是将用户密码作为纯文本存储在数据库中。 不要。特洛伊亨特写了很多关于互联网安全的文章,并且比我更好地解释了密码安全的来龙去脉。 This article比您可能感兴趣的更详细(主要是关于创建密码重置功能),但密码存储的起点非常有效。

关于“我要找的是一些完整的资源(如果存在)?”。你可能不会找到这样的文章。这是一个非常广泛的主题,您最多可以找到各自提供一些文章来帮助您开发自己的解决方案。