gpt4 book ai didi

C# 清除线程主体

转载 作者:太空狗 更新时间:2023-10-29 17:48:58 25 4
gpt4 key购买 nike

在c#中如何清除线程主体。

我有一个后台线程做一个

Membership.ValidateUser(username, password);

然后将生成的 Principal 复制回主线程

AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal);

这很好用。但是,如果我注销我想清除主体,如果我将它设置为 null 它什么都不做 Thread.CurrentPrincipal = null;如果我尝试通过

再次设置它
AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal);

我得到了错误

Default principal object cannot be set twice.

有什么想法吗?

最佳答案

我不认为您可以在不关闭 AppDomain 并重新创建它的情况下重置主体。您只有一次调用 SetThreadPrincipal 的机会。

假设您正在使用自己在 ValidateUser 之后创建的自定义主体对象;您可能可以在主体上放置一个“注销”方法,将其内部状态重置为未经身份验证的用户。

关于C# 清除线程主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/637510/

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