ASP.NET - 手动身份验证系统

时间:2010-06-08 07:50:08

标签: .net asp.net authentication forms-authentication session-state

我们正在开发一个ASP.NET C#应用程序,它将包含一个身份验证系统,可以对多个级别的用户进行身份验证(用户,管理员,超级管理员等)。

我们的想法是不使用内置的ASP.NET表单身份验证功能。我们的计划是基于Session对象为它创建一个完整的“新”系统,SQL数据库包含用户信息,例如用户名和信息。密码。

我们的想法与表单身份验证功能之间是否有任何严重差异?

我们会承担哪些安全风险?我们如何解决它们?

这是表单身份验证功能的一个很好的替代方法吗?

3 个答案:

答案 0 :(得分:3)

我很想知道您厌恶内置会员提供商的原因。

看一下这个链接。 http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx它解释了如何实现自定义MembershipProvider,您可以使用它来对任何现有/计划的数据库/存储进行身份验证,无论是基于会话(不确定如何保留),还是在关系数据库中。 / p>

您对超级用户和管理员用户等的要求很好地落入了角色提供程序系统。它真的很容易使用,微软的ASP.NET团队已经考虑了安全风险以及如何解决它们。

scott Guthrie读了这两篇博客文章:

http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx

http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx

答案 1 :(得分:1)

事实是,您可以将成员资格提供程序,表单身份验证和角色提供程序混合搭配,以满足大多数情况。这些不符合您的需求吗?你真的需要重新发明轮子吗?

答案 2 :(得分:0)

您仍然可以让ASP.NET为您处理身份验证Cookie等。如果你想使用你自己的db东西,那就没关系。有人会争辩说,如果它可以从ASP.NET进入会员系统,那么(通过提供者框架)。

如果这不合适,您可以创建自己的登录表单,但我强烈建议您至少使用FormsAuthentication cookie和会话管理。它已经完成,经过测试,并且在web.config文件中有自己的配置。那又为什么要这样呢?