0

我在 MVC 方面没有太多经验,并且正在查看很多不符合我需要的身份验证示例。

我需要从一个 MVC 应用程序提供对多个系统的访问。每个系统都管理自己的身份验证并提供类似的数据(即系统 X 和系统 Y 都提供小部件列表)。此外,用户可以同时登录到 System X 和 System Y,并且能够从一个或另一个查看小部件,而无需重新提示输入凭据。

我的计划是使用简单的路线 {controller}/{action}/{systemName}(即 Widgets/Index/SystemX)。细节很模糊,但我认为我需要一个自定义 AuthorizeAttribute 和一个 SessionProvider。SessionProvider 将处理登录到系统,该系统返回一个 sessionID。当我从每个系统查询数据时使用这个 sessionID。最模糊的细节之一是为会话中的每个系统存储用户信息(系统名称、用户、会话 ID)的最佳方式。会话状态?饼干?FormsAuthenticationTicket?还有什么?

我很想利用 ASP.NET 和 MVC 中已有的东西,但我不需要用户数据库。

欢迎任何批评或建议。

4

1 回答 1

1

如果 SystemX 和 SystemY 是同一应用程序的不同区域,则使用 ASP.NET MVC 的区域功能可能会更好。这使您可以将应用程序划分为多个区域,这些区域在逻辑上相关的控制器、视图、模型等组可以被划分为多个区域。

每个区域都可以有自己的 web.config 和身份验证方法(例如ASP.Net MVC 3 区域和混合模式身份验证),因此这可能会有所帮助。


如果 SystemX 和 SystemY 本质上是相同的小部件列表功能,但只是针对不同的客户端,您可能需要查看ASP.NET MVC 中的多租户

于 2013-01-19T10:31:41.857 回答