相关疑难解决方法(0)

在asp.net mvc中执行过滤器的顺序是什么

在MVC中,我们可以使用不同的过滤器来装饰动作方法

[HttpPost]
[Authorize]
public ActionResult mymethod(){}
Run Code Online (Sandbox Code Playgroud)

HttpPost派生自MethodSelectorAttribute(可能是间接的)Authorize属性继承自ActionFilterAttribute.

我的问题是:它们在MVC请求管道中执行的顺序是什么?我试图在MVC源代码中搜索,但未能找到相关的代码位.

asp.net-mvc filter action-filter asp.net-mvc-3

53
推荐指数
2
解决办法
4万
查看次数

PostAuthenticateRequest多次发射

我有Forms身份验证,我需要一个自定义对象存储在HttpContext.Current.User和Thread.CurrentPrincipal中.

为了得到这个,我听PostAuthenticateRequest事件,然后从DB读取我需要存储在HttpContext.Current.User和Thread.CurrentPrincipal中的所有用户数据,然后我实例化自定义IPrincipal和IIdentity对象并将它们分配给上面位置.

问题是由于某种原因,PostAuthenticateRequest会针对单个请求多次触发..这会导致不必要的DB往返,从而影响性能.

我该如何解决这个问题?(ASP.NET MVC 2)

谢谢.

asp.net asp.net-mvc-2

6
推荐指数
1
解决办法
3334
查看次数

ASP .NET自定义RoleProvider不尊重cacheRolesInCookie ="true"

我已经实现了一个自定义角色提供程序,并在我的web.config文件中配置它,如下所示:

<roleManager enabled="true" defaultProvider="TDRoleProvider" cacheRolesInCookie="true">
  <providers>
    <clear/>
    <add name="TDRoleProvider" type="TDRoleProvider"/>
  </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

我已经覆盖了我的自定义角色提供程序中的GetRolesForUser函数,我已经介入它,它运行得很好 - 为我正在测试的用户加载了60个角色.但是,我注意到每次调用User.IsInRole的请求都会调用GetRolesForUser.在我编写的其他应用程序中,它只调用一次,然后将结果缓存在cookie中.出于某种原因,缓存不适用于此应用程序.任何想法为什么?

asp.net cookies forms-authentication roleprovider

6
推荐指数
1
解决办法
2817
查看次数