2
我試圖做我自己的IAuthorizationFilter
屬性類。基本上,每個API調用都有一個查詢字符串參數,稱爲'鍵'。然後,我打算用簡單的授權屬性修飾任何需要此操作的操作。需要一些幫助/建議與自定義ASP.NET MVC IAuthorizationFilter類
我希望我的OnAuthorization(..)
方法將提取查詢參數的值,如果它提供。如果是,並且它是合法的,那麼用戶是授權的。否則,他們不是。
我不知道如何在OnAuthorization(..)
方法中執行此操作。
或者我應該使用IActionFilter
而不是?
編輯:我在一些代碼加入到展示我在做什麼...
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
ApiKey apiKey = null;
string queryStringKey = filterContext.HttpContext.Request.QueryString["key"];
if (!string.IsNullOrEmpty(queryStringKey))
{
apiKey = GetApiKey(queryStringKey); // Custom code that checks a dictionary.
}
// Do we have a key?
if (apiKey == null)
{
filterContext.Result = new HttpUnauthorizedResult();
}
// TODO: Is this key allowed for this domain?
// All is good, so don't do anything else.
}
我需要做什麼來說它沒有被授權? filterContext.Result = new HttpUnauthorizedResult(); 否則,保持一切爲默認值? –
@ Pure.Krome:看到我的編輯到這個職位。 –
因此,如果Result屬性的值非空,則它們被拒絕。這在哪裏檢查/處理? –