webapi使用過濾器攔截客戶端傳來的引數

2022-06-20 01:51:08 字數 2103 閱讀 3925

專案是前端和後端分離的,想在伺服器上攔截客戶端傳上來的引數,然後做進一步處理,如:許可權,驗證是否登入,或者其他的

1.新增新類:operationattribute,用來做許可權驗證的

**如下:

///

///判斷是否有許可權訪問某操作

/// public

class

operationattribute:actionfilterattribute

dynamic obj = commontools.jsonhelper.deserializejsontoobject(content);//序列化為物件

actionlogo = obj.actionlogo == null ? "" : obj.actionlogo;//獲取

前端傳過來的動作標識

}

else}}

isvisit(userid, issuper, actionlogo, actioncontext);//開始驗證

2.新增乙個公共類,用來處理post引數

public

static

class

common

//////

轉為字串

/// ///

///public

static

string tostr(this

byte

arr)

}

之所以要這樣寫,是為了防止過濾器重疊的時候,post提交獲取不到引數。

寫好過濾類之後,直接在方法,或者控制器上使用,

[operation]加在方法上,就可以驗證方法的許可權,加在控制器上,就可以驗證控制器下所有的方法,若在控制中有不需要驗證的方法,可以在onactionexecuting上加上:

if (actioncontext.actiondescriptor.getcustomattributes().any())

,然後在不需要驗證的方法上呼叫[allowanonymous],

如登入方法:

這樣登入的方法就繞過了驗證

使用過濾器

過濾器在資料從作用域傳遞到指令上時進行轉換,但並不改變源資料,這允許在檢視中顯示時能夠靈活地格式化或者轉換資料。angularjs具有兩種型別的內建過濾器 一類是對單個資料進行操作的,另一類是對資料集合進行操作的。用於單個資料的內建過濾器 currency 對貨幣值進行格式化,在過濾器名之後新增冒號...

過濾器(6) 過濾器的攔截

本系列部落格彙總在這裡 過濾器彙總 我們來做個測試,寫乙個過濾器,指定過濾的資源為 index.jsp,然後我們在瀏覽器中直接訪問 index.jsp,你會發現過濾器執行了!但是,當我們在 helloservlet 中使用伺服器端的跳轉request.getrequestdispathcer ind...

常用過濾器

去除空格 type 1 所有空格 2 前後空格 3 前空格 4 後空格 function trim value,trim 任意格式日期處理 使用格式 等 function formadate value,fmt if y test fmt fmt fmt.replace regexp.1 date....