gpt4 book ai didi

c# - IsInRole 获取新的安全 token

转载 作者:太空狗 更新时间:2023-10-29 21:56:45 25 4
gpt4 key购买 nike

我正在使用 WindowsPrincipal 的 IsInRole 方法检查 WPF 和 Winforms 应用程序中的组成员身份。我正在生成一个身份 token ,它可以用于任何 AD 用户(不一定是实际登录到计算机的用户——取决于我在做什么,我不一定要进行身份验证,我只是使用基本信息级别 token (我认为它的正确名称是“身份 token ”)。

此代码首次在特定计算机上运行时,操作系统会为指定的用户生成身份 token 。 IsInRole 函数随后使用该 token 来验证组成员身份。它很快,所以我真的很喜欢它。但是,创建 WindowsIdentity/WindowsPrincipal 的后续调用会引用现有 token ,而不是创建新 token 。我知道如何更新 token 的唯一方法是注销计算机或重新启动(这会清除 token 缓存)。有谁知道重置缓存身份 token 的更好方法?

示例代码 C#:

Using System.Security.Principal;
WindowsIdentity impersonationLevelIdentity = new WindowsIdentity("Some_UserID_That_Isn't_Me", null);
WindowsPrincipal identityWindowsPrincipal = new WindowsPrincipal(impersonationLevelIdentity);
If (identityWindowsPrincipal.IsInRole("AN_AD_GROUP")) { ...

VB:

Imports System.Security.Principal
Dim impersonationLevelIdentity = New WindowsIdentity("Some_UserID_That_Isn't_Me", Nothing)
Dim identityWindowsPrincipal = New WindowsPrincipal(impersonationLevelIdentity)
if identityWindowsPrincipal.IsInRole("AN_AD_GROUP") then...

最佳答案

不确定这是否可以解决您的问题,请尝试直接或间接调用 WindowsIdentity 类的 dispose 方法。

using (WindowsIdentity impersonationLevelIdentity = new WindowsIdentity("Some_UserID_That_Isn't_Me", null))
{
// your code
}

关于c# - IsInRole 获取新的安全 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39372042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com