【问题标题】:Sharing forms authentication between a Web Site and a Web Application在网站和 Web 应用程序之间共享表单身份验证
【发布时间】:2011-03-27 14:41:26
【问题描述】:

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

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

现在,我正在尝试做一些类似的事情来让BlogEngine.NET(这是一个网站,而不是一个 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>

还有&lt;machineKey&gt;

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

有人对我应该检查或尝试什么有任何建议吗?

【问题讨论】:

  • 从来没有让它在原始状态下工作。我最终做的是更改这两个应用程序——每个应用程序都有自己的自定义 MembershipProvider 和 RoleProvider,没有什么好理由——使用标准的 AspNetSqlMembershipProvider 和 AspNetSqlRoleProvider。从那时起,共享身份验证状态就完美运行了。

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


【解决方案1】:

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

请注意,本文中有一些有用的链接可供阅读。

【讨论】:

  • 很不幸,这是一个很好的资源。帖子已更新。
猜你喜欢
  • 2011-05-01
  • 1970-01-01
  • 2011-11-04
  • 2019-03-23
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多