具有通用登录(身份验证)的多个ASP.NET web应用程序
我已经创建了两个单独的Asp.Net应用程序具有通用登录(身份验证)的多个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文件中使用相同的
应用程序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点,但没有使用第三部分。任何人只要使用网络上的一些信息而不进行测试,就能得到他们应得的。