多个系统的MVC Forms身份验证

时间:2013-01-19 05:08:50

标签: asp.net-mvc forms-authentication

我没有很多MVC的经验,而且我正在查看许多不符合我需求的身份验证示例。

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

我的计划是使用简单路由{controller} / {action} / {systemName}(即Widgets / Index / SystemX)。细节很模糊,但我想我需要一个自定义的AuthorizeAttribute和一个SessionProvider。 SessionProvider将处理登录系统,该系统返回sessionID。当我从每个系统查询数据时使用此sessionID。最模糊的细节之一是为会话中的每个系统存储用户信息(SystemName,user,sessionId)的最佳方式。 SessionState的?饼干?的FormsAuthenticationTicket?别的什么?

我很想利用ASP.NET中的功能。 MVC,但我不需要为用户提供数据库。

欢迎任何批评或建议。

1 个答案:

答案 0 :(得分:1)

如果SystemX和SystemY是同一应用程序的不同区域,那么最好使用ASP.NET MVC的Areas功能。这允许您将应用程序划分为区域,这些区域与逻辑上相关的控制器,视图,模型等组。

每个区域都可以拥有自己的web.config和身份验证方法(例如ASP.Net MVC 3 Areas and Mixed Mode Authentication),这样可能有所帮助。


如果SystemX和SystemY本质上是相同的小部件列表功能,但仅适用于不同的客户端,您可能需要查看multi-tenancy in ASP.NET MVC