2010-06-23 63 views
1

我们公司正在运行一个asp.net Webforms 3.5网站作为服务器上的默认网站。在与现有表单3.5应用程序相同的域中运行MVC .net 4.0应用程序

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

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

我可以想象这是由某人在那里完成的,有什么好办法做到这一点?任何帮助,将不胜感激。

回答

3

如果您希望两个应用程序运行两个不同的CLR版本(2.0和4.0),您需要创建两个应用程序池,则CLR版本将在每个应用程序池的IIS中设置。一旦创建第二个应用程序池,就可以添加一个虚拟目录并将其分配给该应用程序池。

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

+0

感谢Darin,我已经完全按照您的描述进行了设置,但问题似乎是WebForms是默认网站。当我尝试点击MVC应用程序时,它会抱怨Webforms应用程序的web.config。不知道它为什么要验证WebForms应用程序的web.config。 – 2010-06-23 17:15:12

+0

尝试为主网站的根文件夹之外的ASP.NET MVC应用程序设置物理路径。例如:根网站 - 'd:\ inetpub \ wwwroot',asp.net mvc root - 'd:\ myapp' – 2010-06-23 17:17:52

+0

它们已经分隔c:\ Projects \ CPortal \ CPortal(对于WebForms是默认的根目录WebSite)以及MVC应用程序的c:\ SmartForms \ SmartForms。 – 2010-06-23 17:22:25

1

你不行。

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

我会降级你的MVC网站到3.5。

+0

感谢Jfar,我接受了你的建议并将其降级到3.5,4.0中没有任何内容我现在真的需要,再加上我可以随时升级。 – 2010-06-23 21:04:27

相关问题