0% found this document useful (0 votes)
12 views33 pages

Dotnet 11 -15_merged

The document outlines a series of practical exercises for developing ASP.NET Core applications, including MVC applications and Web APIs. Key functionalities include creating models for products, categories, and suppliers, using Entity Framework with a MySQL database, and implementing CRUD operations. Additionally, it covers the use of ViewData, ViewBag, TempData, and model validation techniques.

Uploaded by

harnillparekhh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views33 pages

Dotnet 11 -15_merged

The document outlines a series of practical exercises for developing ASP.NET Core applications, including MVC applications and Web APIs. Key functionalities include creating models for products, categories, and suppliers, using Entity Framework with a MySQL database, and implementing CRUD operations. Additionally, it covers the use of ViewData, ViewBag, TempData, and model validation techniques.

Uploaded by

harnillparekhh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Web Technology with .

NET Enrollment No: 202203103510495

Practical: 11
Aim: Develop ASP.NET Core MVC application with following functionalities:
• Create model classes “Product”, “Category”, “Supplier”
• Use code first approach with entity framework
• Store and retrieve data to/from MySQL database.

Code:
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using practical11.Data;
using System.Threading.Tasks;

namespace practical11.Controllers
{
public class HomeController : Controller
{
private readonly ApplicationDbContext _context;

public HomeController(ApplicationDbContext context)


{
_context = context;
}

public async Task<IActionResult> Index()


{
var products = await _context.Products.Include(p =>
p.Category).Include(p => p.Supplier).ToListAsync();
return View(products);
}
}
}

Data/ ApplicationDbContext.cs
using Microsoft.EntityFrameworkCore;
using practical11.Models;

namespace practical11.Data
{
public class ApplicationDbContext : DbContext
{
Web Technology with .NET Enrollment No: 202203103510495

public ApplicationDbContext(DbContextOptions<ApplicationDbContext>
options) : base(options)
{
}

public DbSet<Product> Products { get; set; }


public DbSet<Category> Categories { get; set; }
public DbSet<Supplier> Suppliers { get; set; }
}
}

Data/ DbInitializer.cs
using practical11.Models;
using System.Linq;

namespace practical11.Data
{
public static class DbInitializer
{
public static void Initialize(ApplicationDbContext context)
{
context.Database.EnsureCreated();

// Look for any categories.


if (context.Categories.Any())
{
return; // DB has been seeded
}

var categories = new Category[]


{
new Category{Name="Electronics"},
new Category{Name="Clothing"},
new Category{Name="Groceries"}
};
foreach (Category c in categories)
{
context.Categories.Add(c);
}
context.SaveChanges();

var suppliers = new Supplier[]


{
new Supplier{Name="Supplier1",
ContactInfo="supplier1@example.com"},
Web Technology with .NET Enrollment No: 202203103510495

new Supplier{Name="Supplier2",
ContactInfo="supplier2@example.com"},
new Supplier{Name="Supplier3",
ContactInfo="supplier3@example.com"}
};
foreach (Supplier s in suppliers)
{
context.Suppliers.Add(s);
}
context.SaveChanges();

var products = new Product[]


{
new Product{Name="Laptop", Price=800M,
CategoryId=categories[0].Id, SupplierId=suppliers[0].Id},
new Product{Name="Shirt", Price=20M,
CategoryId=categories[1].Id, SupplierId=suppliers[1].Id},
new Product{Name="Apple", Price=1M,
CategoryId=categories[2].Id, SupplierId=suppliers[2].Id}
};
foreach (Product p in products)
{
context.Products.Add(p);
}
context.SaveChanges();
}
}
}

Models/ Category.cs
namespace practical11.Models
{
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Product> Products { get; set; }
}
}

Models/ Product.cs
namespace practical11.Models
{
Web Technology with .NET Enrollment No: 202203103510495

public class Product


{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }

// Foreign Key
public int CategoryId { get; set; }
public Category Category { get; set; }

// Foreign Key
public int SupplierId { get; set; }
public Supplier Supplier { get; set; }
}
}

Models/ Supplier.cs
namespace practical11.Models
{
public class Supplier
{
public int Id { get; set; }
public string Name { get; set; }
public string ContactInfo { get; set; }
public ICollection<Product> Products { get; set; }
}
}

Index.cshtml
@model IEnumerable<practical11.Models.Product>

@{
ViewData["Title"] = "Home Page";
}

<h2>Product List</h2>

<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Category</th>
<th>Supplier</th>
Web Technology with .NET Enrollment No: 202203103510495

</tr>
</thead>
<tbody>
@foreach (var product in Model)
{
<tr>
<td>@product.Name</td>
<td>@product.Price.ToString("C")</td>
<td>@product.Category.Name</td>
<td>@product.Supplier.Name</td>
</tr>
}
</tbody>
</table>

Output
Web Technology with .NET Enrollment No: 202203103510495
Web Technology with .NET Enrollment No: 202203103510495

Practical: 12
Aim: Develop ASP.NET Core Web API which retrieves data from MySQL
database. Also create APIs to create, delete, and update objects..

Code:
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using MyMvcApp.Models;
using System.Diagnostics;

namespace MyMvcApp.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}

public IActionResult Privacy()


{
return View();
}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None,


NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id
?? HttpContext.TraceIdentifier });
}
}
}

ProductsController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MyMvcApp.Data;
using MyMvcApp.Models;
using System.Linq;
using System.Threading.Tasks;

namespace MyMvcApp.Controllers
Web Technology with .NET Enrollment No: 202203103510495

{
public class ProductsController : Controller
{
private readonly DataContext _context;

public ProductsController(DataContext context)


{
_context = context;
}

// GET: Products
public async Task<IActionResult> Index()
{
return View(await _context.Products.ToListAsync());
}

// GET: Products/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}

var product = await _context.Products


.FirstOrDefaultAsync(m => m.Id == id);
if (product == null)
{
return NotFound();
}

return View(product);
}

// GET: Products/Create
public IActionResult Create()
{
return View();
}

// POST: Products/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Price")]
Product product)
{
if (ModelState.IsValid)
{
Web Technology with .NET Enrollment No: 202203103510495

_context.Add(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(product);
}

// GET: Products/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}

var product = await _context.Products.FindAsync(id);


if (product == null)
{
return NotFound();
}
return View(product);
}

// POST: Products/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Price")]
Product product)
{
if (id != product.Id)
{
return NotFound();
}

if (ModelState.IsValid)
{
try
{
_context.Update(product);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ProductExists(product.Id))
{
return NotFound();
}
else
Web Technology with .NET Enrollment No: 202203103510495

{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(product);
}

// GET: Products/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
{
return NotFound();
}

var product = await _context.Products


.FirstOrDefaultAsync(m => m.Id == id);
if (product == null)
{
return NotFound();
}

return View(product);
}

// POST: Products/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var product = await _context.Products.FindAsync(id);
_context.Products.Remove(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

private bool ProductExists(int id)


{
return _context.Products.Any(e => e.Id == id);
}
}
}

DataContext.cs
using Microsoft.EntityFrameworkCore;
using MyMvcApp.Models;
Web Technology with .NET Enrollment No: 202203103510495

namespace MyMvcApp.Data
{
public class DataContext : DbContext
{
public DataContext(DbContextOptions<DataContext> options) :
base(options) { }

public DbSet<Product> Products { get; set; }


}
}

Product.cs
namespace MyMvcApp.Models
{
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
}

appsettings.json
{
"ConnectionStrings": {
"DefaultConnection":
"server=localhost;database=mydatabase;user=root;password=8530"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

Output
Web Technology with .NET Enrollment No: 202203103510495
Web Technology with .NET Enrollment No: 202203103510495

Practical: 13
Aim: Develop ASP.NET Core MVC application to demonstrate use of
ViewData, ViewBag and TempData.

Code:
HomeController.cs
using Microsoft.AspNetCore.Mvc;

namespace practical13.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
// Using ViewData
ViewData["Message"] = "This message is from ViewData.";

// Using ViewBag
ViewBag.Message = "This message is from ViewBag.";

// Using TempData
TempData["Message"] = "This message is from TempData.";

return View();
}

public IActionResult About()


{
// Accessing TempData
ViewBag.TempDataMessage = TempData["Message"];
return View();
}
}
}

Index.cshtml
@{
ViewData["Title"] = "Index";
}

<h2>Index</h2>
Web Technology with .NET Enrollment No: 202203103510495

<p>Message from ViewData: @ViewData["Message"]</p>


<p>Message from ViewBag: @ViewBag.Message</p>

<p><a href="/Home/About">Go to About Page</a></p>

Output
Web Technology with .NET Enrollment No: 202203103510495

Practical: 14
Aim: Develop ASP.NET Core MVC application to demonstrate model
validation with implicit validation and explicit validation.

Code:
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using practical14.Models;
using System.Collections.Generic;

namespace practical14.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}

[HttpPost]
public IActionResult Index(Person person)
{
// Implicit validation
if (ModelState.IsValid)
{
// Explicit validation
if (person.IsValid(out List<string> validationErrors))
{
ViewBag.Message = "Person is valid.";
}
else
{
foreach (var error in validationErrors)
{
ModelState.AddModelError(string.Empty, error);
}
}
}
return View(person);
}
}
}

Model/Person.cs
Web Technology with .NET Enrollment No: 202203103510495

using System.ComponentModel.DataAnnotations;

namespace practical14.Models
{
public class Person
{
[Required(ErrorMessage = "Name is required")]
[StringLength(100, ErrorMessage = "Name can't be longer than 100
characters")]
public string Name { get; set; }

[Required(ErrorMessage = "Email is required")]


[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }

[Required(ErrorMessage = "Age is required")]


[Range(1, 120, ErrorMessage = "Age must be between 1 and 120")]
public int Age { get; set; }

public bool IsValid(out List<string> validationErrors)


{
validationErrors = new List<string>();
if (string.IsNullOrWhiteSpace(Name))
{
validationErrors.Add("Name is required.");
}
if (!new EmailAddressAttribute().IsValid(Email))
{
validationErrors.Add("Invalid Email Address.");
}
if (Age < 1 || Age > 120)
{
validationErrors.Add("Age must be between 1 and 120.");
}
return validationErrors.Count == 0;
}
}
}

Index.cshtml

@model practical14.Models.Person

@{
ViewData["Title"] = "Person Form";
}

<h2>Person Form</h2>
Web Technology with .NET Enrollment No: 202203103510495

<form asp-action="Index" method="post">


<div class="form-group">
<label asp-for="Name"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Email"></label>
<input asp-for="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Age"></label>
<input asp-for="Age" class="form-control" />
<span asp-validation-for="Age" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

@if (ViewBag.Message != null)


{
<div class="alert alert-success">@ViewBag.Message</div>
}

@section Scripts {
<partial name="_ValidationScriptsPartial" />
}

Output
Web Technology with .NET Enrollment No: 202203103510495
Web Technology with .NET Enrollment No: 202203103510495

Practical: 15
Aim: Develop ASP.NET Core MVC Forms application to provide Create, Read,
Update and Delete functionality.

Code:
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using practical15.Data;
using practical15.Models;
using System.Threading.Tasks;

namespace practical15.Controllers
{
public class HomeController : Controller
{
private readonly ApplicationDbContext _context;

public HomeController(ApplicationDbContext context)


{
_context = context;
}

// GET: Home
public async Task<IActionResult> Index()
{
return View(await _context.Items.ToListAsync());
}

// GET: Home/Create
public IActionResult Create()
{
return View();
}

// POST: Home/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Name,Quantity")] Item
item)
{
if (ModelState.IsValid)
{
_context.Add(item);
Web Technology with .NET Enrollment No: 202203103510495

await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(item);
}

// GET: Home/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}

var item = await _context.Items.FindAsync(id);


if (item == null)
{
return NotFound();
}
return View(item);
}

// POST: Home/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id,
[Bind("Id,Name,Quantity")] Item item)
{
if (id != item.Id)
{
return NotFound();
}

if (ModelState.IsValid)
{
try
{
_context.Update(item);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ItemExists(item.Id))
{
return NotFound();
}
else
{
Web Technology with .NET Enrollment No: 202203103510495

throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(item);
}

// GET: Home/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
{
return NotFound();
}

var item = await _context.Items


.FirstOrDefaultAsync(m => m.Id == id);
if (item == null)
{
return NotFound();
}

return View(item);
}

// POST: Home/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var item = await _context.Items.FindAsync(id);
_context.Items.Remove(item);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

private bool ItemExists(int id)


{
return _context.Items.Any(e => e.Id == id);
}
}
}

ItemsController.cs
using Microsoft.AspNetCore.Mvc;
Web Technology with .NET Enrollment No: 202203103510495

using Microsoft.EntityFrameworkCore;
using practical15.Data;
using practical15.Models;
using System.Threading.Tasks;

namespace practical15.Controllers
{
public class ItemsController : Controller
{
private readonly ApplicationDbContext _context;

public ItemsController(ApplicationDbContext context)


{
_context = context;
}

// GET: Items
public async Task<IActionResult> Index()
{
return View(await _context.Items.ToListAsync());
}

// GET: Items/Create
public IActionResult Create()
{
return View();
}

// POST: Items/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Quantity")]
Item item)
{
if (ModelState.IsValid)
{
_context.Add(item);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(item);
}

// GET: Items/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
Web Technology with .NET Enrollment No: 202203103510495

return NotFound();
}

var item = await _context.Items.FindAsync(id);


if (item == null)
{
return NotFound();
}
return View(item);
}

// POST: Items/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id,
[Bind("Id,Name,Quantity")] Item item)
{
if (id != item.Id)
{
return NotFound();
}

if (ModelState.IsValid)
{
try
{
_context.Update(item);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ItemExists(item.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(item);
}

// GET: Items/Delete/5
public async Task<IActionResult> Delete(int? id)
{
Web Technology with .NET Enrollment No: 202203103510495

if (id == null)
{
return NotFound();
}

var item = await _context.Items


.FirstOrDefaultAsync(m => m.Id == id);
if (item == null)
{
return NotFound();
}

return View(item);
}

// POST: Items/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var item = await _context.Items.FindAsync(id);
_context.Items.Remove(item);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

private bool ItemExists(int id)


{
return _context.Items.Any(e => e.Id == id);
}
}
}

Model/Item.cs
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace practical15.Models
{
public class Item
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }

[Required]
[StringLength(100)]
public string Name { get; set; }
Web Technology with .NET Enrollment No: 202203103510495

[Required]
[Range(1, 1000)]
public int Quantity { get; set; }
}
}

ApplicationDbContext.cs
using Microsoft.EntityFrameworkCore;
using practical15.Models;

namespace practical15.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext>
options)
: base(options)
{
}

public DbSet<Item> Items { get; set; }


}
}

Create.cshtml
@model practical15.Models.Item

@{
ViewData["Title"] = "Create Item";
}

<h2>Create Item</h2>

<h4>Item</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
Web Technology with .NET Enrollment No: 202203103510495

<div class="form-group">
<label asp-for="Quantity" class="control-label"></label>
<input asp-for="Quantity" class="form-control" />
<span asp-validation-for="Quantity" class="text-
danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>

@section Scripts {
<partial name="_ValidationScriptsPartial" />
}

Delete.cshtml
@model practical15.Models.Item

@{
ViewData["Title"] = "Delete Item";
}

<h2>Delete Item</h2>

<h4>Are you sure you want to delete this?</h4>


<hr />
<div>
<h4>Item</h4>
<hr />
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Name)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Name)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Quantity)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Quantity)
</dd>
</dl>

<form asp-action="Delete">
<input type="hidden" asp-for="Id" />
Web Technology with .NET Enrollment No: 202203103510495

<input type="submit" value="Delete" class="btn btn-danger" /> |


<a asp-action="Index">Back to List</a>
</form>
</div>

Edit.cshtml
@model practical15.Models.Item

@{
ViewData["Title"] = "Edit Item";
}

<h2>Edit Item</h2>

<h4>Item</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Edit">
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Quantity" class="control-label"></label>
<input asp-for="Quantity" class="form-control" />
<span asp-validation-for="Quantity" class="text-
danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>

@section Scripts {
<partial name="_ValidationScriptsPartial" />
}

Index.cshtml
@model IEnumerable<practical15.Models.Item>

@{
ViewData["Title"] = "Items List";
Web Technology with .NET Enrollment No: 202203103510495

<h2>Items List</h2>

<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Quantity)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Quantity)
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>

Output
Web Technology with .NET Enrollment No: 202203103510495
Web Technology with .NET Enrollment No: 202203103510495
Asha M. Tarsadia Institute of Computer Science and Technology
Network Security (CY5009)
INDEX

Sr. Practicals Date Sign


No
1 Write a C program that contains a string(char
pointer) with a value \Hello World’. The programs
should XOR each character in this string with 0 and
display the result.
2 Write a C program that contains a string (char
pointer) with a value \Hello World’. The program
should AND or and XOR each character in this
string with 127 and display the result.
3 Write a Java program to perform encryption and
decryption using Caesar Cipher, Substitution Cipher
and Hill Cipher.
4 Write a C/JAVA program to implement the Blowfish
algorithm logic.
5 Implement the Diffie‐Hellman Key Exchange
mechanism using HTML and JavaScript.
6 Calculate the message digest of a text using the
SHA‐1 algorithm in JAVA.
7 Calculate the message digest of a text using the
MD5 algorithm in JAVA.
8 Write a java program to implement triple DES.
9 Set Up a honey pot and monitor the honeypot on the
network.
10 Installation of rootkits and study about the variety of
options.
11 Perform wireless audit on an access point or a router
and decrypt WEP and WPA.
Asha M. Tarsadia Institute of Computer Science and Technology
Network Security (CY5009)
INDEX

12 Demonstrate intrusion detection system (ids) using


any tool. Write the rule to alert against SQL
Injection.
CERTIFICATE

This is to certify that Mr. Harnil Parekh, Enrollment No:

202203103510495 of B.Tech. Computer Science and Engineering 5th

semester has satisfactorily completed his laboratory work of CY5009 -

Network Security during regular term in academic year 2024-25.

Date of Submission:

Mr. Dipesh Shahane Department Authority


Subject Teacher
Assistant Professor
Department of Computer Science and
Engineering

Institute Stamp

You might also like