2

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

  • 用户
  • 所有者
  • 行政

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

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

4

2 回答 2

1

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

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

于 2010-11-29T15:59:14.627 回答
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>
于 2010-11-29T20:33:29.573 回答