草庐IT

c# - 对所有 Controller 操作执行操作过滤器 (C#/ASP.NET MVC)

我制作了一个新的Action过滤器(属性,类似于[Authorize]),它根据session值授权访问ControllerAction。但是,我基本上是用该属性装饰我的所有Controller操作(除了极少数)。因此,我认为在我将[ExemptFromAuthorize]属性附加到Controller操作的情况下,让操作过滤器始终执行除外会更好吗?(也许通过继承到我自己的Controller类?)我该怎么做? 最佳答案 运行jeef3的答案,我想到了这个。它可以使用更多的错误检查和稳健性,例如多个定界操作,但总体思路可行。在您的特

C#异常过滤器?

C#是否支持编译过滤器?过滤器是如何工作的或者它们有什么作用?像反射器反编译过滤器一样try{}catch(Exceptione)when(?){} 最佳答案 从C#6开始,您现在可以执行此操作。try{…}catch(MyExceptione)when(myfilter(e)){…}这与在catchblock中使用if语句不同,使用异常过滤器不会展开堆栈。 关于C#异常过滤器?,我们在StackOverflow上找到一个类似的问题: https://stac

c# - 动态添加新的 lambda 表达式以创建过滤器

我需要对ObjectSet进行一些过滤以获得我需要的实体:query=this.ObjectSet.Where(x=>x.TypeId==3);//thisisjustanexample;在代码的后面(在启动延迟执行之前)我再次像这样过滤查询:query=query.Where();到目前为止效果很好。这是我的问题:实体包含一个DateFrom属性和一个DateTo属性,它们都是DataTime类型。它们代表一个时间段。我需要过滤实体以仅获取属于时间段的集合的实体。集合中的句点不一定是连续的,因此,检索实体的逻辑如下所示:entities.Where(x=>x.DateFrom>=Pe

c# - 具有多个术语的 NEST 条件过滤器查询

我想像这样进行ElasticSearch查询:{"query":{"bool":{"filter":[{"terms":{"name":["name1","name2"]}},{"terms":{"color":["orange","red"]}}]}}}我试过像这样在NEST中实现它:_elasticClient.SearchAsync(s=>s.Index("myindex").Query(q=>q.Bool(bq=>bq.Filter(fq=>{QueryContainerquery=null;if(nameList.Any()){query&=fq.Terms(t=>t.Fie

c# - 如何在 Action 过滤器中获取当前模型

我有一个通用Action过滤器,我想在OnActionExecuting方法中获取当前模型。我当前的实现如下所示:publicclassCommandFilter:IActionFilterwhereT:class,new(){publicvoidOnActionExecuting(ActionExecutingContextactionContext){varmodel=(T)actionContext.ActionArguments["model"];}}如果我的所有型号名称都相同,效果会很好。但我想使用不同的型号名称。如何解决这个问题?编辑publicclassHomeContr

c# - 使用查询字符串在 MVC C# 中使用操作过滤器

我使用类名RightCheckerAttribute来检查MVC3应用程序中的用户权限...所以RightCheckerAttribute类是这样的……publicboolisAdmin{get;set;}publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){HttpContextBasecontext=filterContext.HttpContext;boolresult=Convert.ToBoolean(context.Request.QueryString["isAdmin"].ToS

c# - c#中带有过滤器的log4net纯代码配置

我试图完全通过代码配置Log4Net,但是当我使用最小配置时,我被来自NHibernate和流畅界面的日志消息淹没了。所以,我要做的很简单。告诉Log4Net只显示我的单个类的日志消息。我玩弄了一下,但无法弄清楚...谁能帮忙,我想下面的代码说明了我的想法:varfilter=newlog4net.Filter.LoggerMatchFilter();filter.LoggerToMatch=typeof(DatabaseDirectory).ToString();filter.AcceptOnMatch=false;varx=newlog4net.Appender.ConsoleAp

c# - Action 过滤器 Action 参数

我有一个ActionFilterAttribute,我想通过它接受参数,但我不知道如何传递它们。所以我的Action过滤器看起来像这样;publicclassPreventAction:ActionFilterAttribute{publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){filterContext.Result=newRedirectResult("Home/Index");}}然后我这样装饰我的Action;[PreventAction]publicActionResultIdea

c# - 目录搜索过滤器

当我运行这个查询时//NextrowisusedtologintoADDirectoryEntryentry=GetEntry(domain,adminUser,adminPassword);//HerestartsthequeryDirectorySearchersearch=newDirectorySearcher(entry){SearchScope=SearchScope.Subtree,Filter="(&"+"(objectClass=user)"+//"(distinguishedname=*OU=Ingegneria*)"+"(givenname=s*)"+"(sama

c# - ASP.NET Web API 跨请求缓存操作过滤器属性

在ASP.NETWebAPI(4.0.30506)中似乎有一些我以前从未见过的奇怪行为。我看到的是相同的操作过滤器属性实例在WebAPI请求中重复使用。如果此属性被注入(inject)依赖项,这尤其是一个问题,因为这些依赖项可能特定于Web请求。我知道属性最好是passive,但我的假设是操作过滤器属性未缓存。我搜索了任何描述此问题及其背后原因的文章、博客文章或Microsoft更改日志,但我找不到任何东西。这让我想知道我的配置是否有问题导致这种情况发生。然而,我能够在一个新的空VisualStudio2012WebAPI项目中重现这个问题。我所做的是使用带有“WebAPI”模板的Vi