2010-11-29 149 views
2

我試圖評估AzMan爲我的ASP.NET應用程序之一,但我有一個奇怪的問題。我的測試應用程序需要三個角色:AzMan和AD角色的基於ASP.NET角色的安全性

  • 用戶
  • 所有者
  • 聯繫

我創建了位於應用程序的App_Data XML授權存儲,並添加這些角色定義。我配置我的測試ASP.NET應用程序使用AuthorizationStoreRoleProvider,並添加了一些使用Principal.IsInRole和PrincipalPermission的測試代碼。在本地計算機上一切正常,本地帳戶分配給AzMan中的角色。

然後,我將測試應用程序移動到服務器,並將一個Active Directory用戶和組分配給AzMan角色。現在PrincipalPermission和Principal.IsInRole不再工作了。有趣的是,如果我將內建的Everyone組分配到任何角色,那麼AD角色的用戶和組就會出現問題。我可以在AD組和用戶中使用XML授權存儲嗎?還有什麼會導致這樣的問題?

回答

1

檢查您的asp.net應用程序的安全設置。

這聽起來像是匿名身份驗證,因此您的用戶以匿名用戶身份進入,而不是他們自己,因此它適用於所有人組。

+0

安全設置是否正確。我有一個診斷頁面,可以查看用戶名和授權用戶的域。 – 2010-11-29 20:18:50

0
<roleManager enabled="true" cacheRolesInCookie="false" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="AspNetWindowsTokenRoleProvider" createPersistentCookie="false" maxCachedResults="25"> 
     <providers> 
      <clear/> 
      <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager>