gpt4 book ai didi

active-directory - 缓存 Active Directory 数据

转载 作者:行者123 更新时间:2023-12-02 08:53:38 26 4
gpt4 key购买 nike

我想每天两次缓存事件目录数据,即电子邮件、名字和姓氏。这应该在幕后发生,可能在 global.aspx application.start() 中。现在,当我想要获取 1700 个(我的应用程序允许浏览用户的功能)用户时,我会从缓存的数据中执行此操作。我的代码是使用 Asp.net C# 编写的。

有人可以告诉我该怎么做吗?

最佳答案

我的代码在第一次被访问时运行(您可以通过在 global.asax 文件中添加几行来启动此应用程序)。它将缓存的数据存储在 ASP.Net 缓存中 12 小时。 12 小时结束后,下次访问数据时将刷新缓存。

public class UserInfo
{
public static List<UserInfo> UserInfoCache {
get{
if(HttpContext.Current.Cache["CachedUserList"] == null) {
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

PrincipalSearcher ps = new PrincipalSearcher(new UserPrincipal(ctx) { SamAccountName = "*" });

var users = ps.FindAll();

var result = from c in users
let u = (UserPrincipal)c
select new UserInfo() { Email = u.EmailAddress, FirstName = u.GivenName, LastName = u.Surname };

HttpContext.Current.Cache.Insert("CachedUserList", result, null, DateTime.Now.AddHours(12), System.Web.Caching.Cache.NoSlidingExpiration);
}

return (List<UserInfo>)HttpContext.Current.Cache["CachedUserList"];
}
}

public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

关于active-directory - 缓存 Active Directory 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6586012/

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