iis-7 – 在两个Web应用程序之间共享身份验证

我有一个基础网站(Asp.net WebForms应用程序)在ie下运行。

http://localhost:90/

然后我创建了一个新的(这个时候Asp.net MVC)应用程序并添加它

http://localhost:90/mvc/

但不仅仅是作为一个简单的虚拟文件夹,而是作为一个应用程序文件夹通过定义一个不同的应用程序池来运行它,与父应用程序相比。

由于浏览器不能知道有两个不同的应用程序基本上在同一个域上它将工作如下:

>用户访问http:// localhost:90 /
>父应用程序将用户重定向到表单认证屏幕
>用户成功登录
> parent web添加一个认证cookie
>用户访问http:// localhost:90 / mvc
>浏览器从父应用程序附加相同的cookie

是否可能根据同一个Cookie验证用户?我将配置我的MVC应用程序登录重定向到父应用程序有一个共享的认证屏幕。但我想知道谁从那时起认证和工作。

我读了一些关于共享相同的system.web / machineKey值来提供这种功能,但我想一些真实的例子。

我知道这两个应用程序将无法共享会话状态,这不是一个问题,因为我不想要他们。所有我想要的是一种单一登录(SSO / SSS)

这可能吗?怎么样?

重要

我已经阅读关于这一点的其他问题/答案,但他们要么跨域/跨服务器等。这一个是在同一个IIS网站。

我自己找到了。

这是关于MSDN的文章谈论这个场景。我决定保持这个问题无论如何,任何人,将追逐相同的信息一段时间后。

MSDN: Forms Authentication Across Applications

简单来说

你必须在两个应用程序的web.config中配置机器密钥,使它们匹配,因此他们将能够解码另一方生成的数据。这是整个伎俩。 MSDN文章详细解释了这一点,包括如何生成这些键。

翻译自:https://stackoverflow.com/questions/4035471/sharing-authentication-between-two-web-applications

转载注明原文:iis-7 – 在两个Web应用程序之间共享身份验证