{"id":13798,"date":"2024-03-15T07:53:55","date_gmt":"2024-03-15T07:53:55","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/"},"modified":"2025-08-05T23:38:38","modified_gmt":"2025-08-05T23:38:38","slug":"customize-the-login-validation-in-c-authorize","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/","title":{"rendered":"C# Custom Authentication with Authorize"},"content":{"rendered":"<p>In C#, you can validate user login through custom authentication using Authorize. Here is a simple example:<\/p>\n<p>To begin with, create a custom AuthorizeAttribute class that inherits from the System.Web.Mvc.AuthorizeAttribute class.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">using<\/span> System.Web;\r\n<span class=\"hljs-keyword\">using<\/span> System.Web.Mvc;\r\n\r\n<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-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">OnAuthorization<\/span>(<span class=\"hljs-params\">AuthorizationContext filterContext<\/span>)<\/span>\r\n    {\r\n        <span class=\"hljs-comment\">\/\/ \u68c0\u67e5\u7528\u6237\u662f\u5426\u5df2\u7ecf\u767b\u5f55<\/span>\r\n        <span class=\"hljs-keyword\">if<\/span> (!HttpContext.Current.User.Identity.IsAuthenticated)\r\n        {\r\n            <span class=\"hljs-comment\">\/\/ \u672a\u767b\u5f55\uff0c\u91cd\u5b9a\u5411\u5230\u767b\u5f55\u9875\u9762<\/span>\r\n            filterContext.Result = <span class=\"hljs-keyword\">new<\/span> RedirectResult(<span class=\"hljs-string\">\"~\/Account\/Login\"<\/span>);\r\n        }\r\n        <span class=\"hljs-keyword\">else<\/span>\r\n        {\r\n            <span class=\"hljs-comment\">\/\/ \u5df2\u767b\u5f55\uff0c\u7ee7\u7eed\u6267\u884c\u539f\u6709\u7684\u6388\u6743\u903b\u8f91<\/span>\r\n            <span class=\"hljs-keyword\">base<\/span>.OnAuthorization(filterContext);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Next, use CustomAuthorizeAttribute to mark the Controller or Action that requires login verification.<\/p>\n<pre class=\"post-pre\"><code>[<span class=\"hljs-meta\">CustomAuthorize<\/span>]\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">HomeController<\/span> : <span class=\"hljs-title\">Controller<\/span>\r\n{\r\n    <span class=\"hljs-comment\">\/\/ \u9700\u8981\u767b\u5f55\u624d\u80fd\u8bbf\u95ee\u7684Action<\/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-keyword\">return<\/span> View();\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the example above, if a user is not logged in and tries to access an Action that requires login, they will be redirected to the login page. If the user is already logged in, the original authorization logic will continue to be executed.<\/p>\n<p>This is just a simple example. You can customize the login verification logic based on specific needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, you can validate user login through custom authentication using Authorize. Here is a simple example: To begin with, create a custom AuthorizeAttribute class that inherits from the System.Web.Mvc.AuthorizeAttribute class. using System.Web; using System.Web.Mvc; public class CustomAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { \/\/ \u68c0\u67e5\u7528\u6237\u662f\u5426\u5df2\u7ecf\u767b\u5f55 if (!HttpContext.Current.User.Identity.IsAuthenticated) { \/\/ \u672a\u767b\u5f55\uff0c\u91cd\u5b9a\u5411\u5230\u767b\u5f55\u9875\u9762 filterContext.Result [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[1674,18515,274,18516,7849],"class_list":["post-13798","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-authentication","tag-authorize","tag-c","tag-custom-login","tag-mvc"],"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>C# Custom Authentication with Authorize - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.\" \/>\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\/customize-the-login-validation-in-c-authorize\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Custom Authentication with Authorize\" \/>\n<meta property=\"og:description\" content=\"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\" \/>\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-15T07:53:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T23:38:38+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\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=\"Ava Mitchell\" \/>\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\/customize-the-login-validation-in-c-authorize\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"C# Custom Authentication with Authorize\",\"datePublished\":\"2024-03-15T07:53:55+00:00\",\"dateModified\":\"2025-08-05T23:38:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\"},\"wordCount\":113,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"authentication\",\"Authorize\",\"c#\",\"custom login\",\"MVC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\",\"name\":\"C# Custom Authentication with Authorize - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T07:53:55+00:00\",\"dateModified\":\"2025-08-05T23:38:38+00:00\",\"description\":\"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Custom Authentication with Authorize\"}]},{\"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C# Custom Authentication with Authorize - Blog - Silicon Cloud","description":"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.","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\/customize-the-login-validation-in-c-authorize\/","og_locale":"en_US","og_type":"article","og_title":"C# Custom Authentication with Authorize","og_description":"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.","og_url":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T07:53:55+00:00","article_modified_time":"2025-08-05T23:38:38+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"C# Custom Authentication with Authorize","datePublished":"2024-03-15T07:53:55+00:00","dateModified":"2025-08-05T23:38:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/"},"wordCount":113,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["authentication","Authorize","c#","custom login","MVC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/","url":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/","name":"C# Custom Authentication with Authorize - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T07:53:55+00:00","dateModified":"2025-08-05T23:38:38+00:00","description":"Implement custom login validation in C# using AuthorizeAttribute. Step-by-step guide for secure authentication.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/customize-the-login-validation-in-c-authorize\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C# Custom Authentication with Authorize"}]},{"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13798","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=13798"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13798\/revisions"}],"predecessor-version":[{"id":157806,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13798\/revisions\/157806"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=13798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=13798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=13798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}