دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

آموزش MVC Core-آموزش استفاده از ارائه دهندگان فایل(Provider) در MVC Core

آموزش MVC Core-آموزش استفاده از ارائه دهندگان فایل(Provider) در MVC Core

Problem

نحوه دسترسی به اطلاعات دایرکتوری و فایل در ASP.NET Core، تضمین دسترسی محدود به فایل سیستم.

Solution

یک پروژه خالی ایجاد کنید و کلاس Startup را اصلاح کنید:

1
2
3
4
5
6
7
8
9
10
11
12
13
public void ConfigureServices( 
       IServiceCollection services) 
   
       services.AddSingleton< IFileProvide r>( 
           new PhysicalFileProvider(Directory.GetCurrentDirectory())); 
   
   
   public void Configure( 
       IApplicationBuilder app, 
       IHostingEnvironment env) 
   
       app.UseHelloFileProvider(); 
<button></button>

ایجاد middle برای خواندن محتویات دایرکتوری.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class HelloFileProviderMiddleware 
 
     private readonly RequestDelegate next; 
     private readonly IFileProvider fileProvider; 
   
     public HelloFileProviderMiddleware( 
         RequestDelegate next, 
         IFileProvider fileProvider) 
     
         this.next = next; 
         this.fileProvider = fileProvider; 
     
   
     public async Task Invoke(HttpContext context) 
     
         var output = new StringBuilder(""); 
   
         IDirectoryContents dir = this.fileProvider.GetDirectoryContents(""); 
         foreach (IFileInfo item in dir) 
         
             output.AppendLine(item.Name); 
         
   
         await context.Response.WriteAsync(output.ToString()); 
     
 
<button></button>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class HelloFileProviderMiddleware 
    private readonly RequestDelegate next; 
    private readonly IFileProvider fileProvider; 
   
    public HelloFileProviderMiddleware( 
        RequestDelegate next, 
        IFileProvider fileProvider) 
    
        this.next = next; 
        this.fileProvider = fileProvider; 
    
   
    public async Task Invoke(HttpContext context) 
    
        IFileInfo file = this.fileProvider.GetFileInfo("Startup.cs"); 
   
        using (var stream = file.CreateReadStream()) 
        using (var reader = new StreamReader(stream)) 
        
            var output = await reader.ReadToEndAsync(); 
            await context.Response.WriteAsync(output.ToString()); 
        
    
<button></button>

Discussion

ASP.NET Core فراهم می کند encapsulation نوع System.IO.File را به منظور محدود کردن دسترسی به سیستم فایل از طریق نوع PhysicalFileProvider، که اجرای IFileProvider است.
IFileProvider را می توان به عنوان یک سرویس (in Startup) پیکربندی کرد و سپس به عنوان یک dependency در middleware، controllers و غیره تزریق می شود. این پیکربندی دسترسی فایل (مثلا دایرکتوری برای دسترسی) را در یک مکان، در شروع راه اندازی برنامه نگه می دارد.
IFileProvider دارای دو متد مهم است:

  • GetDirectoryContents : IdirectoryContents را باز می گرداند. این را می تواند برای تکرار فایل ها / پوشه ها در یک دایرکتوری استفاده کرد.
  • GetFileInfo: IFileInfo را باز می گرداند. این می تواند برای خواندن فایل از طریق CreateReadStream آن استفاده شود.
1397/03/02 2101 930
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...