gpt4 book ai didi

asp.net - 与 ASP.NET Web 应用程序关联的 Azure WebJob 无法从 WebJob 访问用户角色

转载 作者:行者123 更新时间:2023-12-03 01:09:35 25 4
gpt4 key购买 nike

背景:ASP.NET Web 应用程序管理用户、角色以及用户在其事件服务上花费的用户信用。网络作业会定期检查用户正在使用哪些服务并相应地更新他们的信用。 CreditUpdate更新积分时,WebJob 执行的操作还应考虑 UserRole。

问题:我无法从网络作业访问角色。在 WebApp 上,角色由 ApplicationUserManager 管理和访问。类(class):UserManager.GetRoles(user.Id) 。问题是 WebJob 无法访问 UserManager HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>()我也不知道如何从 WebJob 创建新实例。

简而言之。有权访问身份数据库并拥有 ApplicationUser 的实例。我有什么想法可以访问与之关联的用户角色吗?

这是我的网络作业的代码,以防有帮助。文件是Functions.cs

// This function will be triggered based on the schedule you have set for this WebJob
// This function will enqueue a message on an Azure Queue called queue
[NoAutomaticTrigger]
public static void ManualTrigger(TextWriter log, int value, [Queue("queue")] out string message)
{
var db = new ApplicationDbContext();
var users = db.Users.ToList();
foreach (var user in users)
{
//I would like to check user role first
//if (user.IsInRole("canruletheworld")) {}
user.updateCredit();
}

log.WriteLine("Function is invoked with value={0}", value);
message = value.ToString();
log.WriteLine("Following message will be written on the Queue={0}", message);
}

最佳答案

只需构建 UserManager 的本地实例:

var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));

关于asp.net - 与 ASP.NET Web 应用程序关联的 Azure WebJob 无法从 WebJob 访问用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844409/

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