2010-07-15 158 views
0

我正在嘗試獲取路由中正在調用的當前控制器和操作。獲取當前控制器和發送到路由的操作

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Routing; 
using IProwlAdminUI.Models; 

*** LINE WITH ISSUE*** 
string action = ViewContext.RouteData.Values["controller"].ToString() + ViewContext.RouteData.Values["action"].ToString() 
******* 

眼下ViewContext.RouteData是給我「的對象引用需要非靜態字段,方法或屬性:在我的Global.asax.cs我已在使用和下面一行以下'System.Web.Mvc.ControllerContext.RouteData.Get'「

我需要這樣做,以便我可以使用控制器和操作來評估用戶的權限,看看他們是否可以執行他們正在嘗試的操作做。

任何關於此的幫助將不勝感激。

感謝

+0

這是自定義ASP.NET MVC身份驗證的錯誤方法。 [不要這樣做。](http://blogs.teamb.com/craigstuntz/2009/09/09/38390/) – 2010-07-15 18:11:43

+0

順便說一句,正確的做法是使用ASP.NET成員資格和角色提供者與' AuthorizeAttribute'。這在我的鏈接中有更詳細的解釋。 – 2010-07-15 18:13:14

回答