首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net角色身份验证PrincipalPermission失败

.Net角色身份验证PrincipalPermission失败
EN

Stack Overflow用户
提问于 2012-11-23 20:54:03
回答 2查看 1.6K关注 0票数 1

我有一个vb.net 3.5应用程序,它使用PrincipalPermission类来确保用户是角色的成员。该代码适用于域中的某些组,但不适用于其他组。起初,我认为空间是一个问题,但我检查了“域用户”,这是可行的。运行此代码,我是App的成员之一。

代码语言:javascript
复制
Imports System.Security
Imports System.Security.Principal
Imports System.Security.Permissions

    Private Function DemandSecurity() As Boolean
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim principalGroup As New PrincipalPermission(Nothing, "App Group")
        Try
            principalGroup.Demand()
            Debug.Print("Demanding pricipal permissions for current user on 'App Group' role succeeded. ")
        Catch secEx As SecurityException
            Debug.Print("Security Exception - Demanding pricipal permissions for current user on 'App Group' role failed. ")

            Application.DoEvents()
            MessageBox.Show("Permission denied. Output: " & vbNewLine & secEx.ToString, "App - Security Exception", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)

            Return False
            Exit Function
        End Try
        Return True
    End Function

来自secEx.ToString的错误输出是

“System.Security.Permissions.PrincipalPermission.ThrowSecurityException():在C:\Documents和Settings\me\My \Visual 2008\Projects\App\App\ApplicationEvents.vb:line 28中的System.Security.Permissions.PrincipalPermission.Demand() at App.My.MyApplication.DemandSecurity()处,请求主体权限失败 失败的操作是:请求失败的第一个权限的类型是: System.Security.Permissions.PrincipalPermission 第一个失败的许可是: class="System.Security.Permissions.PrincipalPermission,mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089“version=”1> Identity Authenticated=“真正的”Role="App Group"/> -需求是: IPermission class="System.Security.Permissions.PrincipalPermission,mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089“version=”1> Identity Authenticated="true“”Role="App Group- IPermission程序集或失败的Culture=neutral是: mscorlib、“。

如果我需要包括其他的东西请告诉我。

EN

回答 2

Stack Overflow用户

发布于 2012-11-23 21:07:12

我认为你最好检查一下你的广告组,看看这个问题:http://social.technet.microsoft.com/Forums/en-US/winserverDS/thread/3e8e9209-17c7-4674-8780-7ae09c607118

票数 0
EN

Stack Overflow用户

发布于 2012-11-25 08:31:08

好的,这只是猜测,我碰巧看到了关于SAMAccountName和可分辨名称的讨论,但不知道这是否仍然是当前的问题:Active Directory and PrincipalPermission

老实说,我不知道“角色”是否可以执行完整的LDAP筛选器,但让我们试一试:假设您的组可分辨名称如下:

CN=MyGroup,OU=SecurityGroups,OU=Department,DC=Company,DC=com

为什么不试试这个:

代码语言:javascript
复制
Role="CN=MyGroup,OU=SecurityGroups,OU=Department,DC=Company,DC=com"

Role=@"Company.com\Department\Security Groups\MyGroup"  // Not sure about this one though

因为这个看起来更符合逻辑,也许是这样的:

代码语言:javascript
复制
Role=@"Company\SAMAccountNameOfYourGroup"

我认为CN=Users中的组可能会成功,因为它们可能位于活动目录的根目录中,因此对于其他组,您可能需要给出唯一的SAMAccount,或者为搜索提供某种结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13535616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档