我在 MVC 方面没有太多经验,并且正在查看很多不符合我需要的身份验证示例。
我需要从一个 MVC 应用程序提供对多个系统的访问。每个系统都管理自己的身份验证并提供类似的数据(即系统 X 和系统 Y 都提供小部件列表)。此外,用户可以同时登录到 System X 和 System Y,并且能够从一个或另一个查看小部件,而无需重新提示输入凭据。
我的计划是使用简单的路线 {controller}/{action}/{systemName}(即 Widgets/Index/SystemX)。细节很模糊,但我认为我需要一个自定义 AuthorizeAttribute 和一个 SessionProvider。SessionProvider 将处理登录到系统,该系统返回一个 sessionID。当我从每个系统查询数据时使用这个 sessionID。最模糊的细节之一是为会话中的每个系统存储用户信息(系统名称、用户、会话 ID)的最佳方式。会话状态?饼干?FormsAuthenticationTicket?还有什么?
我很想利用 ASP.NET 和 MVC 中已有的东西,但我不需要用户数据库。
欢迎任何批评或建议。