2016-01-12 33 views
-1

我正在通過mvc3構建Web應用程序。現在我需要創建一個將之前的每個控制器像下面放置一個屬性:如何創建驗證生產密鑰的自定義屬性

[CustomAttribute] 
public class DocinstanceController : Controller 
{} 

這個屬性是用來驗證生產的關鍵和直接到預定義的網頁,如果關鍵是錯誤。

我的問題是如何創建這樣的屬性?

感謝

+1

什麼是 「驗證生產的重點」 是什麼意思?您是否試圖實施某種DRM? – Jamiec

+1

#RTFM ....沒有,只是騎馬,但:https://msdn.microsoft.com/en-us/library/dd410056(v=vs.100).aspx – Hackerman

回答

0

這裏有一個簡單的方法(按@ Hackerman的建議):

public class CheckKeyAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     var keyController = filterContext.Controller as IKeyController; 
     if (keyController != null && keyController.Key != "MyKey") 
     { 
      filterContext.HttpContext.Response.Redirect("NoKey"); 
     } 

    } 
} 

public interface IKeyController 
{ 
    string Key { get; set; } 
} 

[CheckKey] 
public class HomeController : Controller, IKeyController 
{ 

    public ActionResult Index() 
    { 
     ViewBag.Message = "Welcome to ASP.NET MVC!"; 

     return View(); 
    } 

    public ActionResult About() 
    { 
     return View(); 
    } 

    public string Key 
    { 
     get 
     { 
      return "MyKey1"; 
     } 
     set 
     { 

     } 
    } 
} 
相關問題