2012-01-09 31 views
0

我剛剛開始使用ASP .NET MVC 3框架開發一個完整的Web應用程序。 我是一名MVC 3初學者開發者。ASP .NET MVC 3 +處理HTTP請求接收事件


我需要一種方式來實現以下邏輯:

當我的應用程序接收到來自瀏覽器我要檢查,如果有一個會話是使用這個瀏覽器有效的HTTP請求。

如果沒有,我想執行我的Connection控制器的Index操作方法。 Index操作方法向瀏覽器返回HTML5頁面,讓用戶嚮應用程序證明自己。

如果會話是有效的,那麼我想檢查是否存儲在IdUtilSession和IdSocSession會話變量。 如果兩個會話變量都沒有存儲,那麼我想執行我的Connection控制器的Index操作方法。


我讀了一些關於管理會話變量的MSDN文檔。 我想我可以在我的應用程序中管理會話變量。

我想知道我必須處理該事件 - 「當我的應用程序接收到一個HTTP請求」。 我對ASP .NET應用程序生命週期閱讀下面的MSDN文檔頁面:http://msdn.microsoft.com/en-us/library/ms178473.aspx 事件的順序是從 請求處理過程中觸發我需要處理在我的Global.asax文件,這些事件之一?

預先感謝您的幫助,未來

+0

也許先試試Hands On Lab吧? http://msdn.microsoft.com/en-us/VS2010TrainingCourse_ASPNETMVC3Fundamentals – rene 2012-01-09 21:39:34

回答

1

更MVCish方式實現這一目標是編寫一個自定義的授權屬性(而不是依賴於這些經典ASP.NET較爲常用的,而不是ASP.NET事件MVC):

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var authorized = base.AuthorizeCore(httpContext); 
     if (!authorized) 
     { 
      return false; 
     } 

     var session = httpContext.Session; 
     return session["IdUtilSession"] != null && 
       session["IdSocSession "] != null; 
    } 
} 

,然後,而不是使用默認的[Authorize]屬性使用自定義屬性[MyAuthorize]

I want to execute the Index action method of my Connection controller部分而言,您可以在web.config中的<forms>標記中設置loginUrl屬性以指向正確的url。