2010-08-09 147 views
0

我目前有2個簡單的ASP .Net應用程序。兩個應用程序共享相同的aspnetdb成員資格數據庫,用於成員資格,角色和提供程序以及相同的加密和解密密鑰。他們在IIS中也有獨立的網站和獨立的應用程序池。爲什麼我有這個RoleProvider問題?

我遇到的問題是,儘管具有不同的應用程序名稱的角色提供兩種應用它們都被註冊和第二個應用程序啓動後使用從第二應用角色提供。

兩個應用程序都具有默認頁面下面的代碼塊:

<p> 
Current role provider details: <%= Roles.Provider.Name +", "+ Roles.Provider.ApplicationName %> 
</p> 

應用1在其web.config中的以下roleprovider塊:

<roleManager 
enabled="true" 
defaultProvider="AspNetSqlRoleProviderWebApp1" 
cacheRolesInCookie="true" 
domain="Sample Web Application 1" 
cookiePath="path1.domain.co.uk" 
> 
<providers> 
<add 
connectionStringName="aspnetdbConnection" 
applicationName="Sample Web Application 1" 
description="AspNetSqlRoleProviderWebApp1" 
name="AspNetSqlRoleProviderWebApp1" 
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
/> 
</providers> 
</roleManager> 

應用2有下列復甦作用提供者語句在其web.config中:

<roleManager 
    enabled="true" 
    defaultProvider="AspNetSqlRoleProviderWebApp2" 
    cacheRolesInCookie="true" 
    domain="Sample Web Application 2" 
    cookiePath="path2.domain.co.uk" 
    > 
    <providers> 
    <add 
    connectionStringName="aspnetdbConnection" 
    applicationName="Sample Web Application 2" 
    description="AspNetSqlRoleProviderWebApp2" 
    name="AspNetSqlRoleProviderWebApp2" 
    type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    /> 
    </providers> 
    </roleManager> 

問題I我有是,當我顯示示例應用程序1,我得到

當前角色提供詳細信息: AspNetSqlRoleProviderWebApp1,樣品 Web應用程序2

當我查看示例應用程序2,我得到

當前角色提供者詳細信息: AspNetSqlRoleProviderWebApp2,示例 Web應用程序2

因爲這些是完全獨立的Web應用程序,爲什麼是「應用程序名稱」從表示第一了第二個應用程序?

只有我能看到的唯一一件事是,數據庫共享相同的aspnetdb數據庫以及相同的應用程序名稱'/'的成員資格提供程序設置,以便在應用程序之間共享用戶。

+0

有沒有人有任何想法,我可以進行調查? – 2010-08-10 15:29:12

回答

0

read here它做爲了能夠使用多個角色提供了一些修改是必要的。我希望這能幫到您。

+0

但在這種情況下,每個應用程序中都沒有多個角色提供程序。每個應用程序中只有一個具有不同應用程序名稱的角色提供程序分離出底層角色存儲。 – 2010-08-09 14:19:35