加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:05:05 所属栏目:asp.Net 来源:网络整理
导读:我试图检查用户是否在Application_BeginRequest和Application_AuthenticateRequest处于此代码中,并且它将无法正常工作.在BeginRequest中,代码永远不会被命中,并且验证它被某些请求打击,并且分析器不显示. 仅检查Request.IsLocal工作正常. if(Request.IsAuthe
我试图检查用户是否在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.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读