【问题标题】:Running MVC .net 4.0 application in the same domain as an existing forms 3.5 application在与现有表单 3.5 应用程序相同的域中运行 MVC .net 4.0 应用程序
【发布时间】:2010-06-24 00:50:04
【问题描述】:

我们公司目前正在运行一个 asp.net Webforms 3.5 网站作为服务器上的默认网站。

我想添加一个新的 asp.net MVC 应用程序(使用 .net 4.0),但能够使用从表单应用程序到 MVC 应用程序的单点登录身份验证。我该怎么做?

我尝试将 MVC 应用程序添加到默认网站,但 MVC 应用程序失败,因为它试图读取 WebForms 应用程序的 web.config。

我想这是有人做过的,有什么好的方法可以做到这一点?任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    每个应用程序池在 IIS 中设置 CLR 版本 => 如果您想让两个应用程序运行两个不同的 CLR 版本(2.0 和 4.0),您需要创建两个应用程序池。创建第二个应用程序池后,您将添加一个虚拟目录并将其分配给此应用程序池。

    至于 SSO,如果您使用的是 FormsAuthentication,则只需在两个应用程序 web.config 中使用相同的 <authentication mode="Forms"> 部分即可。为了让第一个应用程序创建的身份验证 cookie 被第二个相同的机器密钥解密,需要使用 => check out this article

    【讨论】:

    • 谢谢 Darin,我已经按照您的描述进行了设置,但问题似乎在于 WebForms 是默认网站。当我尝试点击 MVC 应用程序时,它抱怨 Webforms 应用程序的 web.config。不知道为什么它试图验证 WebForms 应用程序的 web.config。
    • 尝试为主网站根文件夹之外的 ASP.NET MVC 应用程序设置物理路径。示例:root 网站 - d:\inetpub\wwwroot,asp.net mvc root - d:\myapp
    • 它们已经分开 c:\Projects\CPortal\CPortal(因为 WebForms 是默认网站的根)和 c:\SmartForms\SmartForms 用于 MVC 应用程序。
    • 如果为 ASP.NET MVC 应用程序创建一个新网站会怎样?
    • 我也试过了 Darin,但是我将无法使用 Michal 在您推荐的文章中谈到的域 cookie 单点登录方法。或者我还能以某种方式这样做吗?
    【解决方案2】:

    你不能。

    您基本上尝试同时使用 4.0 和 3.5 应用程序池。就是行不通。

    我会将您的 MVC 网站降级到 3.5。

    【讨论】:

    • 感谢 Jfar,我听取了您的建议并降级到 3.5,我现在真正需要的 4.0 中没有任何东西,而且我以后可以随时升级。
    猜你喜欢
    • 2011-08-10
    • 2011-05-20
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2011-04-23
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多