2013-02-18 32 views
0

我不想学习如何为asp mvc完全自定义身份验证/授权。
如此简单的操作:注册/登录/注销/记住我
我不想再使用asp会员资格,但是我找不到任何从网页上的开始到结束教程,以了解如何做到这一点。
我很困惑。如果我做了一切定制,我仍然需要使用SetAuthCookie()
所以我不想自定义MembershipProvider,但作出我自己的授权/认证。
我正在寻找的是一些完整的资源(如果存在)?
我真的需要关于这个话题的帮助,所以我很感激任何帮助。如何在没有asp会员资格的情况下完全自定义身份验证/授权

+0

你到目前为止尝试过什么?我建议在尝试编写自己的代码之前,先阅读一下asp.net会员API的工作原理。 – levelnis 2013-02-18 20:28:46

+0

但你为什么要重新发明轮子? – Andre 2013-02-18 20:31:48

回答

4

你不想这样做。

开发自己的会员类的问题是,99.999%的时间你不具备安全知识来构建一个安全,可靠,健壮和可靠的框架。 (另外0.001%的时间你是第三方雇佣的专家做这件事的时间。)

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

坚持下去。否则你会后悔的。

+1

我不同意。虽然重写ASP.NET成员资格的*认证*部分是冒险行为,但除了身份验证外,框架还有很多**。数据层是否真的在任何接近和密码检查通过的机制一样重要的地方提取密码? – Snixtor 2013-02-18 20:43:56

+0

好吧,为什么我想这样做是因为我得到了一些建议,从我的用户表中加入aspnet_Users表是不好的(不知道为什么)。而这个问题也与这个问题有关http://stackoverflow.com/questions/14920327/how-to-join-aspnet-user-to-my-custom-user – 1110 2013-02-18 20:44:24

+0

是否真的不好加入我的自定义用户表aspnet_Users并使它们之间的1:1关系? – 1110 2013-02-18 20:52:21

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。同样的事情,如果你需要有客户字段而不是配置文件中的斑点和更多...

1

首先,ASP.NET成员资格和窗体身份验证的崩溃过程。

直接从供应商( Microsoft

“ASP.NET成员资格给你一个内置的方法来验证,因此存储用户凭据ASP.NET成员资格帮助你在你的网站管理用户认证。 。通过与ASP.NET登录控件一起使用,可以将ASP.NET成员身份与ASP.NET窗体身份验证一起使用,以创建一个用于身份验证用户的完整系统。“

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

由于Scott Mitchell points out,在ASP.NET 2.0之前,我们甚至没有Membership。他自己的(现在很老了)article over on 4guysfromrolla提供了一个基于角色的授权的例子,结合了Forms Authentication和而不是使用Membership。没有任何内在的不安全或冒险。

如果你冒险远离Membership模式/框架,但是,获得正确的下一个最重要的事情是密码安全。你的第一个诱惑可能是将数据库中的用户密码保存为纯文本。 不要。 Troy Hunt撰写关于互联网安全的优秀文章,并且比我更好地解释密码安全的来龙去脉。 This article会比您可能感兴趣的内容更详细(主要是创建密码重置功能),但密码存储的起点非常有效。

关于“我正在寻找的所有资源都是一些完整的资源(如果存在)?”。你可能不会找到这样的文章。这是一个非常广泛的话题,至多你会发现一些文章,每个文章都提供一点点帮助你开发你自己的解决方案。

相关问题