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

发布于 2024-10-04 23:09:13 字数 518 浏览 6 评论 0原文

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

  • 用户
  • 所有者
  • 管理员

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

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

I'm trying to evaluate AzMan for one of my ASP.NET applications but I have a strange problem. My test application expects three roles:

  • User
  • Owner
  • Admin

I created XML Authorization store located in application's App_Data and added these role definitions. I configured my test ASP.NET application to use AuthorizationStoreRoleProvider and I added some test code wich uses Principal.IsInRole and PrincipalPermission. Everything worked well on my local computer with local accounts assigned to roles in AzMan.

Then I moved my test application to the server and a I assigned Active Directory users and Groups to AzMan's roles. Now PrincipalPermission and Principal.IsInRole don't work any more. Interesting is that if I assign builtin Everyone group into any role it works so there is some problem with AD users and groups assigned to roles. Can I use XML authorization store with AD groups and users? What else can cause such problems?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

九厘米的零° 2024-10-11 23:09:13

检查 ASP.NET 应用程序的安全设置。

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

Check the security settings on your asp.net application.

It sounds like annonymous authentication is on, so your users are coming in as annonymous users, not themselves, therefore it works for the everyone group.

背叛残局 2024-10-11 23:09:13
    <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>
    <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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文