1

我是一名实习生,我被分配了一个项目,我必须重新设计他们的客户支持网页。我是 ASP 新手,所以他们要求我将代码迁移到 MVC 4,以便我为未来的项目学习它。

该网页具有使用自定义类的表单身份验证,扩展MembershipProvider并且RoleProvider数据通过asp:SqlDataSource查询显示,直接在 .aspx 文件中定义。

正如我所了解的,MVC 的重点是将前端(视图)、控制器和后端(模型、数据库访问)分开。我在这方面取得了一些进展,但我在身份验证方面遇到了问题。我已经设法使用显式MembershipProviderRoleProvider初始化来启用登录(这应该按照 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 进行数据库访问。

4

1 回答 1

1

根据我的经验,在将旧页面从 webforms 迁移到 mvc 时,你不得不“忘记”它从一开始就是一个 webform 页面。

更直接地回答您对帮助资源的请求,也许这会很有用:http: //kylehodgson.com/2013/01/08/asp-netmvc-web-security-basics-csrf/

于 2013-08-13T18:36:16.073 回答