具有通用登录(身份验证)的多个ASP.NET web应用程序

具有通用登录(身份验证)的多个ASP.NET web应用程序,asp.net,.net,iis-7,Asp.net,.net,Iis 7,我已经创建了两个单独的Asp.Net应用程序 应用程序1:管理员 应用程序2:报告 我们已经在IIS 7.0中托管了管理应用程序。 现在我需要在Admin应用程序中提供一个链接,链接到Reports应用程序,我不应该再次登录到Reports应用程序 现在,我已经在IIS中的Admin应用程序下为报告创建了虚拟目录。 因此,我的问题是如何为这两个应用程序提供通用身份验证。? 注意:我正在使用表单身份验证 提前感谢我想你应该看看和我想你应该看看和关键是你需要在每个web.config文件中使用相同的

我已经创建了两个单独的Asp.Net应用程序
应用程序1:管理员
应用程序2:报告

我们已经在IIS 7.0中托管了管理应用程序。 现在我需要在Admin应用程序中提供一个链接,链接到Reports应用程序,我不应该再次登录到Reports应用程序

现在,我已经在IIS中的Admin应用程序下为报告创建了虚拟目录。 因此,我的问题是如何为这两个应用程序提供通用身份验证。?
注意:我正在使用表单身份验证


提前感谢

我想你应该看看和

我想你应该看看和

关键是你需要在每个web.config文件中使用相同的机器密钥、验证密钥和解密密钥

另外,确保每个文件中的所有表单验证参数都匹配


reports应用程序应指向Admin应用程序的登录页。

关键是您需要在每个web.config文件中使用相同的机器密钥、验证密钥和解密密钥

另外,确保每个文件中的所有表单验证参数都匹配


reports应用程序应指向Admin应用程序的登录页面。

您需要在配置中执行三项操作,并且每个应用程序必须匹配:

  • 在成员资格和角色提供程序中具有相同的
    Application
    属性,并使用相同的数据库:
    applicationName
    属性位于
    add
    提供程序的子级
    和的子级。这意味着将共享身份验证和授权数据

  • 使用相同的密钥加密和验证身份验证cookie(在元素上)。(这也意味着登录将在应用程序池重新启动后仍然有效,因为不会在每次应用程序启动时生成新密钥。)

  • 让两个应用在元素上使用相同的
    名称
    属性,以便使用相同的cookie


[在找到rigth属性后更新为第三点。]

您需要在配置中执行三项操作,并且每个应用程序必须匹配:

  • 在成员资格和角色提供程序中具有相同的
    Application
    属性,并使用相同的数据库:
    applicationName
    属性位于
    add
    提供程序的子级
    和的子级。这意味着将共享身份验证和授权数据

  • 使用相同的密钥加密和验证身份验证cookie(在元素上)。(这也意味着登录将在应用程序池重新启动后仍然有效,因为不会在每次应用程序启动时生成新密钥。)

  • 让两个应用在元素上使用相同的
    名称
    属性,以便使用相同的cookie


[在找到rigth属性后更新为第三点。]

您可能希望在管理应用程序下使用应用程序而不是虚拟目录

您需要在web.config中设置enableCrossAppRedirects=“true”

两个应用程序都应该共享一个machineKey。以下是生成machineKey的工具:

示例web.config条目:

<authentication mode="Forms">
  <forms name=".ASPNETAUTH"
      enableCrossAppRedirects="true"
      loginUrl="Login.aspx"
      protection="All"
      path="/"
      timeout="60" />
</authentication>


<machineKey validationKey='F1D92DF9B41E5D94E79946A10494F52FF26956F256667DB52E9FA9B30E6A4FF61E4C05F1AC2795330F34B7B1389E1BD75FD0D3DCD12E991BD09B9AD004C0FE0D'
            decryptionKey='B8940FB4A776EABD1525E7D9B58E9E5DE057B2F2A67AA913'
            validation='SHA1'/>

您可能需要一个应用程序,而不是管理应用程序下的虚拟目录

您需要在web.config中设置enableCrossAppRedirects=“true”

两个应用程序都应该共享一个machineKey。以下是生成machineKey的工具:

示例web.config条目:

<authentication mode="Forms">
  <forms name=".ASPNETAUTH"
      enableCrossAppRedirects="true"
      loginUrl="Login.aspx"
      protection="All"
      path="/"
      timeout="60" />
</authentication>


<machineKey validationKey='F1D92DF9B41E5D94E79946A10494F52FF26956F256667DB52E9FA9B30E6A4FF61E4C05F1AC2795330F34B7B1389E1BD75FD0D3DCD12E991BD09B9AD004C0FE0D'
            decryptionKey='B8940FB4A776EABD1525E7D9B58E9E5DE057B2F2A67AA913'
            validation='SHA1'/>


@Jupaol:没有。我使用了第1点和第2点,但没有使用第三部分。任何人只要在没有测试的情况下使用网络上的一些信息,就会得到他们应得的。@Jupaol:没有。我使用了第1点和第2点,但没有使用第三部分。任何人只要使用网络上的一些信息而不进行测试,就能得到他们应得的。