New test.
[mono.git] / mcs / class / System.Web.Mvc2 / System.Web.Mvc / ChildActionOnlyAttribute.cs
1 /* ****************************************************************************\r
2  *\r
3  * Copyright (c) Microsoft Corporation. All rights reserved.\r
4  *\r
5  * This software is subject to the Microsoft Public License (Ms-PL). \r
6  * A copy of the license can be found in the license.htm file included \r
7  * in this distribution.\r
8  *\r
9  * You must not remove this notice, or any other, from this software.\r
10  *\r
11  * ***************************************************************************/\r
12 \r
13 namespace System.Web.Mvc {\r
14     using System;\r
15 \r
16     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]\r
17     public sealed class ChildActionOnlyAttribute : FilterAttribute, IAuthorizationFilter {\r
18 \r
19         public void OnAuthorization(AuthorizationContext filterContext) {\r
20             if (filterContext == null) {\r
21                 throw new ArgumentNullException("filterContext");\r
22             }\r
23 \r
24             if (!filterContext.IsChildAction) {\r
25                 throw Error.ChildActionOnlyAttribute_MustBeInChildRequest(filterContext.ActionDescriptor);\r
26             }\r
27         }\r
28 \r
29     }\r
30 }\r