{"id":17833,"date":"2024-03-15T15:48:22","date_gmt":"2024-03-15T15:48:22","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/"},"modified":"2024-03-21T11:51:20","modified_gmt":"2024-03-21T11:51:20","slug":"how-is-the-common-class-authorizeattribute-defined-in-net","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/","title":{"rendered":"How is the common class AuthorizeAttribute defined in .NET?"},"content":{"rendered":"<p>In .NET, you can create custom authorization attributes by inheriting from the AuthorizeAttribute class. AuthorizeAttribute is an abstract base class used to mark controllers or action methods in ASP.NET that require authorized access.<\/p>\n<p>To create a generic AuthorizeAttribute class, you can define it by following the steps below:<\/p>\n<ol>\n<li>Attribute that grants permission<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">CustomAuthorizeAttribute<\/span> : <span class=\"hljs-title\">AuthorizeAttribute<\/span>\r\n{\r\n   <span class=\"hljs-comment\">\/\/ \u7a0b\u5e8f\u903b\u8f91\u5c06\u5728\u8fd9\u91cc\u6dfb\u52a0<\/span>\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Check for authorization<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">protected<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-built_in\">bool<\/span> <span class=\"hljs-title\">AuthorizeCore<\/span>(<span class=\"hljs-params\">HttpContextBase httpContext<\/span>)<\/span>\r\n{\r\n   <span class=\"hljs-comment\">\/\/ \u5b9e\u73b0\u6388\u6743\u903b\u8f91<\/span>\r\n   <span class=\"hljs-keyword\">return<\/span> ...; <span class=\"hljs-comment\">\/\/ \u8fd4\u56detrue\u8868\u793a\u5141\u8bb8\u8bbf\u95ee\uff0c\u8fd4\u56defalse\u8868\u793a\u62d2\u7edd\u8bbf\u95ee<\/span>\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>ManageUnauthorizedRequest<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">protected<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">HandleUnauthorizedRequest<\/span>(<span class=\"hljs-params\">AuthorizationContext filterContext<\/span>)<\/span>\r\n{\r\n   <span class=\"hljs-comment\">\/\/ \u5904\u7406\u672a\u7ecf\u6388\u6743\u7684\u8bf7\u6c42<\/span>\r\n   <span class=\"hljs-comment\">\/\/ \u53ef\u4ee5\u8fdb\u884c\u91cd\u5b9a\u5411\u6216\u8fd4\u56de\u7279\u5b9a\u7684HTTP\u72b6\u6001\u7801<\/span>\r\n}\r\n<\/code><\/pre>\n<p>By customizing the AuthorizeAttribute class, you can use this attribute on controllers or action methods to implement permission control. For example:<\/p>\n<pre class=\"post-pre\"><code>[<span class=\"hljs-meta\">CustomAuthorize<\/span>]\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> ActionResult <span class=\"hljs-title\">Index<\/span>()<\/span>\r\n{\r\n   <span class=\"hljs-comment\">\/\/ \u63a7\u5236\u5668\u903b\u8f91<\/span>\r\n   <span class=\"hljs-keyword\">return<\/span> View();\r\n}\r\n<\/code><\/pre>\n<p>The above steps outline the basic process of defining a general AuthorizeAttribute class. Depending on specific requirements, relevant authorization logic and handling operations can be added to the AuthorizeCore and HandleUnauthorizedRequest methods.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In .NET, you can create custom authorization attributes by inheriting from the AuthorizeAttribute class. AuthorizeAttribute is an abstract base class used to mark controllers or action methods in ASP.NET that require authorized access. To create a generic AuthorizeAttribute class, you can define it by following the steps below: Attribute that grants permission public class CustomAuthorizeAttribute [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-17833","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How is the common class AuthorizeAttribute defined in .NET? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the common class AuthorizeAttribute defined in .NET?\" \/>\n<meta property=\"og:description\" content=\"In .NET, you can create custom authorization attributes by inheriting from the AuthorizeAttribute class. AuthorizeAttribute is an abstract base class used to mark controllers or action methods in ASP.NET that require authorized access. To create a generic AuthorizeAttribute class, you can define it by following the steps below: Attribute that grants permission public class CustomAuthorizeAttribute [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T15:48:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T11:51:20+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"How is the common class AuthorizeAttribute defined in .NET?\",\"datePublished\":\"2024-03-15T15:48:22+00:00\",\"dateModified\":\"2024-03-21T11:51:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\"},\"wordCount\":119,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\",\"name\":\"How is the common class AuthorizeAttribute defined in .NET? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T15:48:22+00:00\",\"dateModified\":\"2024-03-21T11:51:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the common class AuthorizeAttribute defined in .NET?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the common class AuthorizeAttribute defined in .NET? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/","og_locale":"en_US","og_type":"article","og_title":"How is the common class AuthorizeAttribute defined in .NET?","og_description":"In .NET, you can create custom authorization attributes by inheriting from the AuthorizeAttribute class. AuthorizeAttribute is an abstract base class used to mark controllers or action methods in ASP.NET that require authorized access. To create a generic AuthorizeAttribute class, you can define it by following the steps below: Attribute that grants permission public class CustomAuthorizeAttribute [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T15:48:22+00:00","article_modified_time":"2024-03-21T11:51:20+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"How is the common class AuthorizeAttribute defined in .NET?","datePublished":"2024-03-15T15:48:22+00:00","dateModified":"2024-03-21T11:51:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/"},"wordCount":119,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/","name":"How is the common class AuthorizeAttribute defined in .NET? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T15:48:22+00:00","dateModified":"2024-03-21T11:51:20+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-common-class-authorizeattribute-defined-in-net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the common class AuthorizeAttribute defined in .NET?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=17833"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17833\/revisions"}],"predecessor-version":[{"id":51472,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17833\/revisions\/51472"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=17833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=17833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=17833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}