除非从第二站点重定向,否则跨Web应用程序身份验证不进行身份验证

时间:2014-04-23 00:30:00

标签: asp.net authentication

我有2个使用Forms身份验证设置的asp.net Web应用程序来进行跨应用程序身份验证。我已将以下代码放在webApp1和webApp2 web.config文件中 system.web标记。

<forms timeout="11520" loginUrl="https://App1/logon.aspx" cookieless="AutoDetect" name=".ASPXFORMSAUTH"
    protection="All"
    path="/"
    domain="fsenet.companyname.net" />
</authentication>        

<machineKey 
  decryption="AES"
  validation="SHA1"
  decryptionKey="306C1FA852AB3B0115150DD8BA30821CDFD125538A0C606DACA53DBB3C3E0AD2" 
  validationKey="61A8E04A146AFFAB81B6AD19654F99EA7370807F18F5002725DAB98B8EFD19C711337E26948E26D1D174B159973EA0BE8CC9CAA6AAF513BF84E44B2247792265" />

场景1工作原理:如果我尝试访问webApp2上的某个页面并且我未经过身份验证,它会将我重定向回webApp1登录页面,然后我会登录并重定向回webApp2上的页面,所有工作正如预期的那样使用此重定向方法。

场景2问题:如果我使用webApp1登录并在webApp1中的页面上有链接并尝试导航到webApp2中的页面,我会自动重定向回登录页面。根据我的理解,我应该已经过身份验证,可以访问webApp2上的页面,不应该要求再次进行身份验证。

我使用此代码来识别我是否经过身份验证

User.Identity.IsAuthenticated.ToString()

场景2显示重定向的错误原因,场景1显示为True。

我是否遗漏了一些设置,允许我在使用webApp1进行身份验证后访问webApp2上的内容?

2 个答案:

答案 0 :(得分:0)

为跨应用程序SSO正确设置FBA设置非常重要。已有博客文章介绍这些技巧,我可以看到你错过了多个步骤,然后一个应用程序无法从另一个应用程序获取经过身份验证的信息。

http://geekswithblogs.net/bjackett/archive/2009/09/03/single-sign-on-across-.net-web-apps-using-forms-based-authentication.aspx

答案 1 :(得分:0)

好的我做错了是没有访问具有相同域名的两个网站,例如我在调试时正在登录 HTTP:/本地主机/站点1 (localhost是错误的)然后从我们到http://domianname.net/Site2/Page1.aspx的链接,当我应该通过http://domianname.net/Site1http://domianname.net/Site2/Page1.aspx(两者都带有域)访问它们时允许身份验证cookie从我相信的正确位置接过来。