基于ASP.NET角色的安全性与AzMan和AD角色

时间:2010-11-29 12:43:32

标签: asp.net security active-directory roles azman

我正在尝试为我的一个ASP.NET应用程序评估AzMan,但我有一个奇怪的问题。我的测试应用程序需要三个角色:

  • 用户
  • 所有者
  • 管理

我创建了位于应用程序App_Data中的XML Authorization存储,并添加了这些角色定义。我将测试ASP.NET应用程序配置为使用AuthorizationStoreRoleProvider,并添加了一些使用Principal.IsInRole和PrincipalPermission的测试代码。一切都在我的本地计算机上运行良好,本地帐户分配给AzMan中的角色。

然后我将测试应用程序移动到服务器,并将Active Directory用户和组分配给AzMan的角色。现在PrincipalPermission和Principal.IsInRole不再工作了。有趣的是,如果我将内置的Everyone组分配到任何角色,它就可以正常运行,因此AD用户和分配给角色的组存在一些问题。我可以将XML授权存储与AD组和用户一起使用吗?还有什么可以导致这样的问题?

2 个答案:

答案 0 :(得分:1)

检查asp.net应用程序的安全设置。

听起来像是匿名身份验证,因此您的用户以匿名用户身份进入,而不是自己,因此它适用于所有人群。

答案 1 :(得分: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>