DNTCommon.Web.Core
provides common scenarios' solutions for ASP.NET Core 1.1.x, 2.x and 3.x applications.
To install DNTCommon.Web.Core, run the following command in the Package Manager Console:
PM> Install-Package DNTCommon.Web.Core
You can also view the package page on NuGet.
After installing the DNTCommon.Web.Core package, to register its default providers, call services.AddDNTCommonWeb();
method in your Startup class.
using DNTCommon.Web.Core;
namespace MyWebApp
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDNTCommonWeb();
}
-
ActionResults
- FeedResult is an ASP.NET Core RSS feed renderer.
- OpenSearchResult is an ASP.NET Core OpenSearch description format provider.
- SitemapResult is an ASP.NET Core Sitemap renderer.
-
Caching
- ICacheService encapsulates IMemoryCache functionalities.
- [NoBrowserCache] action filter sets
no-cache
,must-revalidate
,no-store
headers for the currentResponse
.
-
DependencyInjection
- IServiceProviderExtensions creates an IServiceScope which contains an IServiceProvider used to resolve dependencies from a newly created scope and then runs an associated callback.
-
Drawing
- TextToImageExtensions and TextToImageResult draw a text on a bitmap and then return it as a png byte array.
-
Http
- ICommonHttpClientFactory service, reuses a single HttpClient instance across a multi-threaded application.
- DomainHelperExtensions provides useful extension methods to extract domain info of the URL's.
- IDownloaderService encapsulates HttpClient's best practices of downloading large files.
- IHtmlHelperService provides helper methods to work with HTML contents such as extracting links and titles or changing relative Urls to absolute Urls.
- IHttpRequestInfoService provides useful methods to work with current HttpContext.Request.
- IRedirectUrlFinderService finds the actual hidden URL after multiple redirects.
- IUrlNormalizationService transforms a URL into a normalized URL so it is possible to determine if two syntactically different URLs may be equivalent.
- IHtmlReaderService reads the HTML document's nodes recursively.
-
Mail
- IWebMailService simplifies sending an email using the
MailKit
library. It's able to use razor based email templates.
- IWebMailService simplifies sending an email using the
-
ModelBinders
- PersianDateModelBinderProvider parses an incoming Persian date and then binds it to a DateTime property automatically. To use it globally (assuming your app only sends Persian dates to the server), Add it to MvcOptions:
services.AddMvc(options => options.UsePersianDateModelBinder())
or just apply it to an specific view-model[ModelBinder(BinderType = typeof(PersianDateModelBinder))]
. - YeKeModelBinderProvider parses an incoming text and then corrects its Ye & Ke characters automatically. To use it globally, Add it to MvcOptions:
services.AddMvc(options => options.UseYeKeModelBinder())
or just apply it to an specific view-model[ModelBinder(BinderType = typeof(YeKeModelBinder))]
.
- PersianDateModelBinderProvider parses an incoming Persian date and then binds it to a DateTime property automatically. To use it globally (assuming your app only sends Persian dates to the server), Add it to MvcOptions:
-
Mvc
- ControllerExtensions provides useful extension methods to work with MVC Controllers.
- IMvcActionsDiscoveryService provides a way to list all of the controllers and action methods of an MVC application.
- IViewRendererService helps rendering a .cshtml file as an string. It's useful for creating razor based email templates.
- UploadFileService saves the posted IFormFile to the specified directory asynchronously.
-
Security
- [AjaxOnly] action filter determines whether the HttpRequest's
X-Requested-With
header hasXMLHttpRequest
value. - IProtectionProviderService is an encryption provider based on
Microsoft.AspNetCore.DataProtection.IDataProtector
. It's only useful for short-term encryption scenarios such as creating encrypted HTTP cookies. - IFileNameSanitizerService determines whether the requested file is safe to download to avoid
Directory Traversal
&File Inclusion
attacks. - UploadFileExtensions attribute determines only selected file extensions are safe to be uploaded.
- AllowUploadSafeFiles attribute disallows uploading dangerous files such as .aspx, web.config and .asp files.
- AntiDosMiddleware is a rate limiter and throttling middleware for ASP.NET Core apps. To use it first add
app.UseAntiDos()
andservices.Configure<AntiDosConfig>
to Startup.cs file. Then complete theAntiDosConfig
section of the appsettings.json file. - IAntiXssService provides a cleaning service for unsafe HTML fragments that can lead to XSS attacks based on a whitelist of allowed tags and attributes. To use it add
services.Configure<AntiXssConfig>
to Startup.cs file. Then complete theAntiXssConfig
section of the appsettings.json file.
- [AjaxOnly] action filter determines whether the HttpRequest's