Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC中的自定义表单身份验证_C#_Asp.net_Asp.net Mvc_Forms Authentication - Fatal编程技术网

C# MVC中的自定义表单身份验证

C# MVC中的自定义表单身份验证,c#,asp.net,asp.net-mvc,forms-authentication,C#,Asp.net,Asp.net Mvc,Forms Authentication,我想在我的网站上使用身份验证,以便登录到管理部分。我已经有了数据库架构,我不想使用SQL Server的ASP.NET成员资格表。我有三个表:Employees、Roles和EmployeesInRoles 我真的很想让这个尽可能简单,但我很难找到解决方案。我只想对我的表使用表单身份验证,以便员工可以登录、注销、更改密码等 如果有人能告诉我关于这方面的博客文章或教程,那就太好了。史蒂文,请查看我的网站安全系列教程: (编辑:我已经更新了上面的URL,因为原来的URL返回了404。但是请记住,这篇

我想在我的网站上使用身份验证,以便登录到管理部分。我已经有了数据库架构,我不想使用SQL Server的ASP.NET成员资格表。我有三个表:Employees、Roles和EmployeesInRoles

我真的很想让这个尽可能简单,但我很难找到解决方案。我只想对我的表使用表单身份验证,以便员工可以登录、注销、更改密码等


如果有人能告诉我关于这方面的博客文章或教程,那就太好了。

史蒂文,请查看我的网站安全系列教程:

(编辑:我已经更新了上面的URL,因为原来的URL返回了404。但是请记住,这篇文章是2008年写的,现在已经过时了。)

前三个教程专门关注基于表单的身份验证,而不讨论成员资格。前三个教程——特别是教程2和教程3——应该会让你朝着正确的方向前进

要在不使用内置ASP.NET角色框架的情况下实现角色,请参阅本文:

尽管如此,我还是建议您重新考虑使用ASP.NET的烘焙会员和角色库。避免它们意味着你将不得不重新发明轮子,你可能会做错。(例如,您是否在自定义实现中安全地存储用户密码?)


快乐编程

内置成员资格提供程序基于可由您自己的实现替换的接口,这些接口(除其他外)可以使用您自己的表进行身份验证

以下是有关创建自定义ASP.NET成员资格提供程序的视频:

这是一篇很好的一般性文章,其中有指向其他资源的指针:

不确定您的数据需要有多安全,也不确定风险因素,但假设数据值得保护,或者您不会为此烦恼。。。请确保遵循OWASP指南。当专家开发和测试的现有API随时可用时,大多数开发人员不应该使用他们自己的安全性,但如果您坚持,至少要遵循指导原则@David:我不同意-内置实现的源代码可以派生。在数据模型中已经内置了用户表的情况下,使用内置表可能会很麻烦。微软将会员资格提供程序建立在特定的界面上,因此它可以扩展。我将修改我以前的评论-密码存储不是一件简单的事情,很容易出错。因此,请扩展,但请确保您了解如何加密数据库中静止的敏感数据。+1-滚动您自己的通常是一个坏主意,我完全同意您的看法!这是可行的,直到您必须使用非SQL Server数据存储。@EdDeGagne,您可以创建自定义成员资格提供程序来处理备用数据存储。事实上,可能已经有人这样做了。例如,这里有一个MySQL的自定义成员资格提供程序-已经在这样做了,Scott,我有一个自定义成员资格提供程序在UniData DB(多值数据库)上工作。这是一个挑战,但仍然不是100%。@Scottmithell第一个链接抛出了404。