【发布时间】:2013-08-13 09:26:22
【问题描述】:
我是一名实习生,我被分配了一个项目,我必须重新设计他们的客户支持网页。我是 ASP 新手,所以他们要求我将代码迁移到 MVC 4,以便我为以后的项目学习它。
该网页使用自定义类进行表单身份验证,扩展MembershipProvider 和RoleProvider,并使用直接在.aspx 文件中定义的asp:SqlDataSource 查询显示数据。
据我所知,MVC 的重点是将前端(视图)、控制器和后端(模型、数据库访问)分开。我在这方面取得了一些进展,但我在身份验证方面遇到了问题。我已经设法使用显式的MembershipProvider 和RoleProvider 初始化来启用登录(这应该按照Web.config 中的配置自动完成)。通过调用MembershipProvider.ValidateUser() 和FormsAuthentication.RedirectFromLoginPage(),我会验证用户详细信息并存储他们的用户名以在导航时保留。
这可行,但删除了 WebSecurity 方法的所有功能,以及特定授权,例如[Authorize(Roles = "...")],没有按预期工作,它没有授权任何角色。 Visual Studio 中的 MVC 示例项目使用 SimpleMembershipProvider 进行用户身份验证,但我还没有找到任何项目或教程来说明如何以与扩展 MembershipProvider 类并覆盖其方法相同的方式实现自定义身份验证。
问题是已经有一个有很多用户的 T-SQL 数据库,这些用户链接到其他服务,所以显然我不能以任何方式改变它,也不能创建新的数据库/表。我看过的项目是从头开始创建数据库的,我还没有找到任何使用WebSecurity 和现有数据库的自定义身份验证/授权的项目。
我想向您询问任何建议、示例或项目或教程的链接,我可以在其中了解如何实现 WebSecurity 而不是 FormsAuthentication。正如我所提到的,我已经有一个功能齐全的MembershipProvider 和RoleProvider,我相信SimpleMembershipProvider 和SimpleRoleProvider 有类似的方法,所以这部分应该不会那么难。另外,我不想混合 Webforms 和 MVC,我想要纯 MVC 应用程序。
我正在使用带有 C# 和 Razor 引擎、T-SQL 和 LINQ to SQL 的 ASP.NET MVC 4 进行数据库访问。
【问题讨论】:
标签: asp.net-mvc-4 webforms migration forms-authentication webmatrix