0

我正在开发一个需要根据两个不同数据库中的记录对用户进行身份验证的项目。所有管理员都存储在本地,并且需要完整的功能来管理他们的帐户(重置密码等)。普通用户根据另一个 Web 应用程序使用的不同数据库进行身份验证,因此我只需要检查他们的凭据是否正确。

在登录屏幕上输入他们的用户名/密码后,我的应用程序应该检查它们是否存在于本地管理员表中。如果是这样,他们将被赋予“管理员”角色并允许访问。如果没有,它应该检查其他应用程序的用户表,如果成功,则给他们一个“用户”角色。

该项目基本上是一本大型在线书籍。用户只需进行身份验证即可查看它、对部分进行评分和为页面添加书签。评级/书签数据将与其唯一 ID 相关联。所有用户管理都在外部应用程序中处理。但是,管理员只能查看/编辑页面,而不能对内容进行评级/添加书签。他们的帐户将使用此管理区域进行管理。

在 .NET MVC 应用程序中完成此任务的最佳方法是什么?通过“这个”,我的意思是将登录/身份验证系统与两者集成,并根据哪个数据库确认他们的凭据为他们分配一个角色。

提前致谢!

4

1 回答 1

0

MVC 确实与您的用户验证逻辑没有太大关系——您需要实现一个自定义成员资格提供程序来处理连接到两个数据库并执行验证。这个成员资格类可以移植到任何应用程序,但它并不特定于 MVC。

在自定义成员资格提供程序中获得逻辑后,您只需将 FormsAuthentication 与您的 MVC 应用程序一起使用,其中有很多教程,这里有一个快速教程。

我要添加的与 MVC 相关的唯一提示是,您应该尝试将视图决策逻辑保留在控制器中。在您的视图中放置类似“ <% if user == admin then renderPartial(this) else renderPartial(that) %>”的内容很诱人,但在我看来这违反了 MVC 原则。在控制器中使用 ViewModel 或填充 ViewData 要好得多。

于 2009-08-18T22:56:54.013 回答