2016-10-06 122 views
1

我需要爲我的Hangfire儀表板創建一個AuthroizationFilter。檢查是一個請求來自服務器本地到OWIN

它在Azure虛擬機上運行,​​並通過設計應該只接受來自本地請求的請求。

我想創建一個AuthorizationFilter,它只驗證Web應用程序運行在同一虛擬機上的Web瀏覽器的請求。

我需要確定這種形式的OwinContext: -

public class MyRestrictiveAuthorizationFilter : IAuthorizationFilter 
{ 
    public bool Authorize(IDictionary<string, object> owinEnvironment) 
    { 
     // In case you need an OWIN context, use the next line, 
     // `OwinContext` class is the part of the `Microsoft.Owin` package. 
     var context = new OwinContext(owinEnvironment); 

     // Allow all local request to see the Dashboard 

     return true; 
    } 
} 

回答

2

我也有類似問題上的自定義CookieAuthenticationProvider只有IOwinContext暴露工作。 context.Request沒有暴露的IsLocal財產,但以下是可供選擇:

context.Request.Uri.IsLoopback 

127.0.0.1localhost要求該物業是true

0

關於請求上下文檢查標題是什麼?

context.Request.Headers["Referer"] 

如果該值包括本地主機或127.0.0.1或任何你限制它。

小心:此標頭可能被欺騙。可能有更好的方法來限制對儀表板的訪問。它需要互聯網接入嗎?

0

你能用HttpRequest.IsLocal嗎?這會告訴你,請求的IP地址是否與服務器的IP地址相同。

return context.Request.IsLocal; 
相關問題