如何在没有asp成员身份的情况下进行完全自定义的身份验证/授权

本文关键字:自定义 身份验证 授权 情况下 asp 成员 身份 | 更新日期: 2023-09-27 17:59:51

我不想学习如何为asp-mvc进行完全自定义的身份验证/授权
所以简单的操作:注册/登录/注销/记住我
我不想再使用asp会员资格了,但我在网上找不到任何关于如何做到这一点的从头到尾的教程
我有点困惑。如果我自定义了所有内容,我还需要使用SetAuthCookie()等吗?
所以我不想自定义MembershipProvider,而是自己进行授权/身份验证
我所寻找的只是一些完整的资源(如果存在的话)
在这个话题上我真的需要帮助,所以我很感激任何形式的帮助。

如何在没有asp成员身份的情况下进行完全自定义的身份验证/授权

您不想这样做。

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

我知道MembershipProvider笨重、臃肿,而且没有它应该有的那么灵活。但它非常安全,而且比你能写的任何东西都安全得多。这不值得冒险。。。在开发自己的网站时,您可能会失去对网站、数据以及最重要的客户数据的控制。

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

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

直接来自提供商(Microsoft):

"ASP.NET成员身份为您提供了一种内置的方法来验证和存储用户凭据。因此,ASP.NET成员身份有助于您管理网站中的用户身份验证。您可以将ASP.NET成员身份与ASP.NET表单身份验证一起使用,方法是与ASP.NET登录控件一起使用,以创建一个完整的用户验证系统。"

请注意,"可以将ASP.NET成员身份与ASP.NET表单身份验证一起使用"。它们是不同的元素。身份验证部分是你不想搞砸的,我认为LeviBotelho(理所当然)对此感到紧张。但是,您也可以在没有会员资格的情况下正确使用表单身份验证!

正如Scott Mitchell所指出的,在ASP.NET 2.0之前,我们甚至没有Membership。他自己关于4guysfromrolla的文章(诚然现在已经很老了)提供了一个基于角色的授权示例,将Forms Authentication和而非使用Membership相结合。这并没有任何内在的不安全或风险。

如果您正在脱离Membership模式/框架,那么接下来最重要的事情就是密码安全。您的第一个诱惑可能是将用户密码以明文形式存储在数据库中不要Troy Hunt撰写了关于互联网安全的精彩文章,并对密码安全的来龙去脉做了比我更好的解释。这篇文章比您可能感兴趣的要详细得多(它主要是关于创建密码重置功能),但密码存储的起点是非常有效的。

关于"我所寻找的只是一些完整的资源(如果存在)?"。你可能找不到这样的文章。这是一个非常宽泛的主题,充其量你会发现每一篇文章都提供了一点帮助,帮助你开发自己的解决方案。

我也有同样的想法,如果你不能100%确定,@levibotelho是不安全的。另一方面,你可以在http://nugetmusthaves.com/Category/Security例如:http://altairiswebsecurity.codeplex.com/,https://github.com/kristofferahl/FluentSecurity还有更多。。。

可能是这个:https://github.com/OdeToCode/Memflexbrgds!。

update:@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。同样的事情,如果你需要有客户字段,而不是blobs在配置文件和更多。。。