asp.net – 如何使用AspNetSqlMembershipProvider正确验证mvc-mini-profiler

前端之家收集整理的这篇文章主要介绍了asp.net – 如何使用AspNetSqlMembershipProvider正确验证mvc-mini-profiler前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图检查用户是否在Application_BeginRequest和Application_AuthenticateRequest处于此代码中,并且它将无法正常工作.在BeginRequest中,代码永远不会被命中,并且验证它被某些请求打击,并且分析器不显示.

仅检查Request.IsLocal工作正常.

if(Request.IsAuthenticated)
{
  if(User.IsInRole("Admin");
    MiniProfiler.Start(); 
}

任何想法或为什么它不工作或更好的方法呢?

[更新]我接受了这个遮阳篷,但是没有弄清楚它,因为我没有做到这一点

我做了以下操作,但是分析器最初没有出现.
经过几次尝试,它开始显示,即使我尝试使用无痕模式访问该网站,所以没有cookie.

protected void Application_PostAuthorizeRequest(Object sender,EventArgs e)
{
        if (User.IsInRole("Admin"))
        {
            HttpCookie cookie =   HttpContext.Current.Request.Cookies.Get("RoleProfiler");
            if (cookie == null)
            {
                cookie = new HttpCookie("RoleProfiler");
                cookie.Value = "yes";
                cookie.Expires = DateTime.Now.AddDays(1d);
                Response.Cookies.Add(cookie);
            }
        }
 }

我正在检查

protected void Application_BeginRequest(Object sender,EventArgs e)
{            
        HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("RoleProfiler");
        if ((cookie != null) && (cookie.Value == "yes") )
        {
            MvcMiniProfiler.MiniProfiler.Start();
        }
 }

并在请求结束时结束.

protected void Application_EndRequest()
{
        MvcMiniProfiler.MiniProfiler.Stop();
}

[Update2]关闭问题,忽略这个,我是由outputcache所有.

解决方法

开始请求发生在用户在请求生命周期中完全验证之前.

解决了这个问题,如果用户在一个角色(在你的情况下为“Admin”),通过添加一个cookie,当请求被认证,那么你可以在开始请求和初始化分析器时检查这个cookie.

它不会第一次工作,但应该每次之后.

猜你在找的asp.Net相关文章