gpt4 book ai didi

c# - 仅对特定用户和角色启用 mini profiler

转载 作者:行者123 更新时间:2023-11-30 19:43:11 27 4
gpt4 key购买 nike

在 asp.net mvc 中,scott hanselman 示例显示了如何显示本地环境的迷你分析器

protected void Application_BeginRequest()
{
if (Request.IsLocal) { MiniProfiler.Start(); } //or any number of other checks, up to you
}

但是,我想更进一步,能够远程查看它,仅针对特定的登录用户或 ips。

知道怎么做吗?

更新:我使用了以下代码:

protected void Application_EndRequest()
{
MiniProfiler.Stop(); //stop as early as you can, even earlier with MvcMiniProfiler.MiniProfiler.Stop(discardResults: true);
}

protected void Application_PostAuthorizeRequest(object sender, EventArgs e)
{
if (!IsAuthorizedUserForMiniProfiler(this.Context))
{
MiniProfiler.Stop(discardResults: true);
}
}

private bool IsAuthorizedUserForMiniProfiler(HttpContext context)
{
if (context.User.Identity.Name.Equals("levalencia"))
return true;
else
return context.User.IsInRole("Admin");
}

最佳答案

您可以订阅 PostAuthorizeRequest 事件并在当前用户不在给定角色或请求来自特定 IP 或您想要的任何检查时丢弃结果:

protected void Application_BeginRequest()
{
MiniProfiler.Start();
}

protected void Application_PostAuthorizeRequest(object sender, EventArgs e)
{
if (!DoTheCheckHere(this.Context))
{
MiniProfiler.Stop(discardResults: true);
}
}

private bool DoTheCheckHere(HttpContext context)
{
// do your checks here
return context.User.IsInRole("Admin");
}

关于c# - 仅对特定用户和角色启用 mini profiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896878/

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