有没有办法将身份验证从一个Web应用程序持久保存到ASP.NET中的另一个嵌套Web应用程序?

时间:2011-02-18 16:46:42

标签: c# asp.net iis authentication iis-7

所以我的公司有一个ASP.NET Web应用程序,面向.NET 3.5。我的任务是为他们建立一个票务系统。我不需要使用公司应用程序的任何资源,除了身份验证。我想针对.NET 4.0并使用像实体框架和mvc 3.0这样的4.0好东西。如果我创建一个嵌套在IIS中的主Web应用程序中的.net 4应用程序,是否有办法保持身份验证,以便他们不需要在4.0 Web应用程序中使用不同的会话?

如果我不清楚,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:4)

如果使用成员身份验证,则可以在不同的Web应用程序之间共享会话,前提是:

  1. 他们都共用同一台机器 键 - 您可以设置machineKey 显式地在每个web.config中 相同的价值。

  2. 您使用的是相同的 认证cookie名称(即 默认为.ASPXAUTH

  3. 可能还有其他方法,但这就是我开始工作的方式。

    另见本文供参考:Forms Authentication Across Applications

答案 1 :(得分:0)

如果主IIS应用程序中的子文件夹本身不是应用程序,它将被加载到父IIS应用程序的AppDomain中,这将确保在应用程序之间共享会话状态。如果它是自己的IIS应用程序,它将拥有自己的AppDomain并且是一个单独运行的应用程序。

如果它与父IIS应用程序共享相同的AppDomain,则必须小心部署二进制文件的位置。如果未添加专用bin路径以进行程序集解析,则所有程序集都必须位于根/bin中。但这会增加主应用程序在您的附加子文件夹中查找程序集的风险,而不应该查看它。