在Web站点和Web应用程序之间共享表单身份验证

时间:2010-08-10 02:18:30

标签: asp.net forms-authentication blogengine.net

以前,我已经实现了两个单独的ASP.NET Web应用程序,一个作为另一个子文件夹中的虚拟应用程序,它成功地共享了表单身份验证,如http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx所述

(基本上,在Web.config中设置相同的<forms>部分,在<machineKey>部分设置密钥)

现在,我正在尝试做类似于获取BlogEngine.NET(这是一个Web站点,而不是Web应用程序)来与我的Web应用程序共享表单身份验证。我已经尝试将它作为虚拟应用程序放在子文件夹中,并将其设置为单独的IIS站点(相同的域名,不同的端口号),但我无法使身份验证工作:当我去登录到我的Web应用程序时,Page.User.Identity.IsAuthenticated的博客仍然是“假”。

我真的不确定如何开始调试,因为表单身份验证是在我的任何代码运行之前处理的。

两个Web.configs的

<authentication>部分是相同的:

<authentication mode="Forms">
  <forms path="/" domain="localhost" timeout="129600" name=".WebSiteName"
protection="All" slidingExpiration="true" loginUrl="/admin/login.aspx"
cookieless="UseCookies"/>
</authentication>

<machineKey>也是:

<machineKey validationKey="DD45C42ACEAF1E208E9B78288177EBF9C8C7C54C6D05BA2FBA90B5348B8F6987216CB098056891CFE81DC33E37C5F9A2BF1845DBF902C6E4BBFEC2341FFA3635"
decryptionKey="0C69852D8BE0948D545C35B932D394102802FAF7FA46E99B4E5B5E12546E4620"
validation="SHA1" decryption="AES" />

有没有人对我应该检查或尝试的内容有任何建议?

1 个答案:

答案 0 :(得分:3)

这是解决此问题的好资源:http://blogs.msdn.com/b/cliffgreen/archive/2011/03/29/reporting-services-single-sign-on-sso-authentication-part-1.aspx

请注意,本文中的链接对于阅读非常有用。