2014-05-07 37 views
6

我有一個自託管OWIN應用程序的工作驗證,我試圖找出如何要求對所有請求(或任意請求)認證/授權。要求對所有請求的OWIN應用

一些在管道中的各個組件都有自己的授權設備(例如:的WebAPI,SignalR,南希),但似乎有些多餘,當我想限制一切。此外,一些中間件沒有授權支持(例如Microsoft.Owin.StaticFiles)。

如果我OWIN啓動看起來是這樣的:服務目錄瀏覽器之前

public class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     app.RequireSsl(); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 
     //... 
     app.UseGoogleAuthentication(); 

     // ** Need to add something that restricts access ** 

     app.UseDirectoryBrowser(); 
    } 
} 

我如何要求用戶通過身份驗證(重定向如果需要的話)? (目錄瀏覽器可隨意其它OWIN組件)。

+0

github的任何完整樣本?沒有向OWIN公開請求? – Kiquenet

回答

22

您的身份驗證的中間件和要保護的組件之間將這個。它將檢查以確保每個請求都被認證。

 app.Use(async (context, next) => 
     { 
      var user = context.Authentication.User; 
      if (user == null || user.Identity == null || !user.Identity.IsAuthenticated) 
      { 
       context.Authentication.Challenge(); 
       return; 
      } 
      await next(); 
     });