15 asp.net web-applications asp-classic asp.net-mvc-3
目前,我们有许多使用Classic ASP通过.NET 2.0技术开发的Web应用程序(外部和内部).每个Web应用程序都有自己的登录屏幕,可根据自己的自定义数据库或使用Windows身份验证进行身份验证.用户可以访问这些应用程序中的一个或多个,这意味着他们必须注销并重新登录到他们想要访问的应用程序.所有应用程序共享后端数据源的一部分.此外,除了跨应用程序复制之外,业务逻辑还嵌入在UI中,因为没有代码/业务逻辑共享.屏幕截图#1简要介绍了现有架构.

屏幕截图#2显示了建议的体系结构,我希望它有助于更快的开发,代码/业务可重用性以及可能更简单的维护.用户将访问外部或内部URL.在外部,用户将提供凭据,并将根据自定义数据库进行身份验证.在内部站点中,用户将使用Windows身份验证自动登录.在创建了一些示例之后,我开始喜欢ASP.NET MVC 3.它将业务逻辑与UI分开,我也喜欢单元测试功能.
这是我的问题:
根据我到目前为止在网上找到的内容,在单个网站中进行多次身份验证是不可行的.我的理解是,我必须为每种类型的身份验证(表单和Windows)托管一个网站.如何在用户通过身份验证后将用户重定向到公共登录页面,以便他们可以看到他们有权访问的模块(链接/菜单)?我是否必须向两个网站发布相同的代码集(dll和内容)?
有没有人遇到类似的架构问题?如果是,请您分享您所面临的挑战以及您如何解决这些挑战?设计此类应用程序的行业标准是什么?
建议的架构是否有意义,或者它是一个非常糟糕的设计?在ASP.NET MVC 3中执行此操作是否有任何缺点?
我非常感谢你的投入.
提前致谢.

我会建立一个单独的网站,仅处理 Windows 身份验证。然后,我会依靠 OpenID 和/或 OAuth 之类的东西来请求凭据/令牌,以确保用户具有正确的访问权限。
想要使用 Windows 凭据登录的用户会经历该过程,因为您是对的,运行 Windows 身份验证的 IIS 服务器很难与其他内容混合。
您可以建立某种基于声明的推力网络,在该网络中您的应用程序可以从可信来源获取凭据,通过该过程您可以协商和控制跨多个网站的访问权限。只要您不进行自定义托管或白标品牌,您就可以将所有内容集中在一个地方(或者即使您这样做了,您也可以对其进行设计,以便您拥有一个分发身份验证令牌的中央解决方案)。
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |