MVC3 - 使用SQL Server帐户进行身份验证

时间:2011-12-14 13:57:02

标签: asp.net-mvc-3 sql-server-2005 sql-server-2008 authentication

我找不到任何对此问题有用的内容,之前我从未在Web应用程序中使用过身份验证。所以有/无饼干的任何东西对我来说都是新的。

我们有一个使用SQL Server帐户进行身份验证的现有(非网络)程序。现在,我想对我的MVC3项目做同样的事情。

每个用户在数据库中拥有相同的权限。 (非网络)程序自己处理权限。登录成功后(使用SQL帐户),登录名将映射到数据库中的实体,从中可以获取用户ID并处理正确的管理。如果用户“admin”已登录,则他将获得ID 4711并将看到更多输入字段等,而其他用户拥有较少的权限。

这可能吗?

除此之外:存储身份验证的最佳方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:0)

Asp.Net一般(不是特定于MVC)有内置的方法来管理身份验证。

通过MembershipProvider,RoleProvider和PrincipalProvider完成。你可以谷歌那些了解更多细节。

在您必须针对现有架构检查用户凭据的场景中,您可以简单地实现从基类派生的自定义MembershipProvider(以及,如果需要,还有RoleProvider和/或PrincipalProvider)。

在自定义提供程序中,您将使用特定于域的代码实现签名方法。

最后,您只需将自定义提供程序注册为web.config中的默认提供程序即可。您的应用可以使用默认的Membership API来验证用户和经理凭据。

答案 1 :(得分:0)

如果您的数据库结构已经确定,您可以编写自己的MembershipProvider来访问您的数据库(请参阅http://msdn.microsoft.com/en-us/library/f1kyba5e.aspxhttp://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspx)。

如果您对数据库结构很灵活,可以使用ASP.NET的内置SqlMembershipProvider(请参阅http://codehighstreet.com/Articles/overview_of_membership_and_installing_sql_membership_provider-part_1/overview_of_membership_and_installing_sql_membership_provider-part_1.aspx)。然后,您必须运行一个SQL脚本,为您创建表和索引。这适用于MVC 3。