Skip to main content

Featured post

XM Cloud content sync from prod to uat or UAT to prod step by step

When working with Sitecore, it’s common to need content synchronization across environments. Today, I’ll walk you through the steps to sync content from Production to UAT/TEST and vice versa. Steps to Follow 1. Set Up Your Workspace Create a folder on your computer where you will manage the script files and exported data. Open the folder path in PowerShell to begin scripting. We need to run some scripts in PowerShell to update the folder with the basic requirements for syncing content. PS C:\Soft\ContentSync> dotnet new tool-manifest PS C:\Soft\ContentSync> dotnet nuget add source -n Sitecore https://nuget.sitecore.com/resources/v3/index.json PS C:\Soft\ContentSync> dotnet tool install Sitecore.CLI PS C:\Soft\ContentSync> dotnet sitecore cloud login If the above error occurs, you will need to run a different command to resolve the issue. PS C:\Soft\ContentSync> dotnet sitecore init now, Again run above command to open and authenticate with XM Cloud. It will be there a...

CRUD operation using MongoDB with asp.net mvc project


Insert, Delete and Update using MongoDB with ap.net mvc project.

In this article i am going to explain with example for user registration and login step by step.

Open your Visual Studio and create a project.

Add MongoDB driver in your project by using the following process.

Go to Tools > Library Package Manage > Manage Nugget manager for sultion.

It will open new window , search online MongoDB and install it in your project.

Now create a class in Model folder of project . Here , I have created User Class and added some properties.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MongoDB.Bson.Serialization.Attributes;

namespace M101DotNet.WebApp.Models
{
    public class User
    {

        [BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]
        public string Id { get; set; }

        public string Name { get; set; }

        public string Email { get; set; }
          }
}

Now adding another class in this project which can connect with MongoDB

Here, I have created mongodbcontext  class to perform operation with MongoDB.

          using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using MongoDB.Driver;

namespace M101DotNet.WebApp.Models
{
    public class BlogContext
    {
        public const string CONNECTION_STRING_NAME = "Blog";
        public const string DATABASE_NAME = "blog";
        public const string POSTS_COLLECTION_NAME = "posts";
        public const string USERS_COLLECTION_NAME = "users";

        private static readonly IMongoClient _client;
        private static readonly IMongoDatabase _database;

        static BlogContext()
        {
            var connectionString = ConfigurationManager.ConnectionStrings[CONNECTION_STRING_NAME].ConnectionString;
            _client = new MongoClient(connectionString);
            _database = _client.GetDatabase(DATABASE_NAME);
        }

        public IMongoClient Client
        {
            get { return _client; }
        }

        public IMongoCollection<User> Users
        {
            get { return _database.GetCollection<User>(USERS_COLLECTION_NAME); }
        }
    }
}

and finally, I have created AccountController in project please see below code which help you more understand  .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using MongoDB.Driver;
using M101DotNet.WebApp.Models;
using M101DotNet.WebApp.Models.Account;

namespace M101DotNet.WebApp.Controllers
{
    [AllowAnonymous]
    public class AccountController : Controller
    {
        [HttpGet]
        public ActionResult Login(string returnUrl)
        {
            var model = new LoginModel
            {
                ReturnUrl = returnUrl
            };

            return View(model);
        }

        [HttpPost]
        public async Task<ActionResult> Login(LoginModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
            // XXX WORK HERE
            var user = await blogContext.Users.Find(x => x.Email == model.Email).SingleOrDefaultAsync();
            // fetch a user by the email in model.Email

            if (user == null)
            {
                ModelState.AddModelError("Email", "Email address has not been registered.");
                return View(model);
            }

            var identity = new ClaimsIdentity(new[]
                {
                    new Claim(ClaimTypes.Name, user.Name),
                    new Claim(ClaimTypes.Email, user.Email)
                },
                "ApplicationCookie");

            var context = Request.GetOwinContext();
            var authManager = context.Authentication;

            authManager.SignIn(identity);

            return Redirect(GetRedirectUrl(model.ReturnUrl));
        }

        [HttpPost]
        public ActionResult Logout()
        {
            var context = Request.GetOwinContext();
            var authManager = context.Authentication;

            authManager.SignOut("ApplicationCookie");
            return RedirectToAction("Index", "Home");
        }

        [HttpGet]
        public ActionResult Register()
        {
            return View(new RegisterModel());
        }

        [HttpPost]
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
          
            var user = new User
            {
                Name = model.Name,
                Email = model.Email
            };
            await blogContext.Users.InsertOneAsync(user);
            // create a new user and insert it into the database

            return RedirectToAction("Index", "Home");
        }

        private string GetRedirectUrl(string returnUrl)
        {
            if (string.IsNullOrEmpty(returnUrl) || !Url.IsLocalUrl(returnUrl))
            {
                return Url.Action("index", "home");
            }

            return returnUrl;
        }
    }
}





Comments

Popular posts from this blog

How to use Nmap with example

  Nmap is a popular open source network scanning tool used for network exploration, security auditing, and vulnerability testing. Here's an example of how to use Nmap: Open a command prompt or terminal window on your computer. Type "nmap" followed by the IP address or domain name of the target network or device that you want to scan. For example, to scan a website, you might enter: nmap www.example.com Hit enter to start the scan. Nmap will begin probing the target network or device and will display information about the discovered hosts and open ports. You can use various options and flags to customize the scan. For example, the "-sS" flag specifies a TCP SYN scan, which is a stealthy scan method that can bypass some firewall configurations. The "-p" flag specifies the ports to scan. For example, to scan only ports 80 and 443 on a website, you might enter: nmap -sS -p 80,443 www.example.com Hit enter to start the customized scan. Nmap will d...

How to become sitecore architect

  Becoming a Sitecore architect requires a combination of technical skills and experience working with Sitecore. Here are the steps you can follow to become a Sitecore architect: Acquire Sitecore certifications: Sitecore offers a range of certifications, including Sitecore Certified Developer, Sitecore Certified Solution Architect, and Sitecore Certified Master. These certifications will demonstrate your expertise in Sitecore and give you credibility in the industry. Gain practical experience: To become a Sitecore architect, you will need to have hands-on experience working with Sitecore. This could include building and deploying Sitecore websites, working with Sitecore modules and components, and troubleshooting issues. You can gain this experience through work experience, personal projects, or Sitecore sandbox environments. Learn related technologies: Sitecore architects need to have a solid understanding of related technologies, such as .NET, SQL Server, and front-end developmen...

How to Setting up local development environment with XM Cloud and containers

   To set up a local development environment with XM Cloud and containers, you will need to follow these steps: Install Docker: Docker is a containerization platform that allows you to run applications in isolated containers. Install Docker on your local machine. Install Docker Compose: Docker Compose is a tool that allows you to define and run multi-container Docker applications. Install Docker Compose on your local machine. Create a Docker Compose file: Create a Docker Compose file that defines the services you want to run. In this case, you will need to define a service for XM Cloud. Configure XM Cloud: In the Docker Compose file, configure the XM Cloud service by defining the necessary environment variables, such as your XM Cloud API key and secret. Build the containers: Build the containers by running the "docker-compose build" command. This will create a Docker image for the XM Cloud service. Start the containers: Start the containers by running the "docker-compose...

How to use HTTPort

  HTTPort is a tool that allows you to tunnel TCP/IP connections through HTTP proxies. Here's how you can use it: Download and install HTTPort on your computer. Launch HTTPort and configure the settings. In the "Server" section, enter the address and port of the HTTP proxy that you want to use. In the "Listen" section, enter the local port on your computer that you want to use to connect to the proxy. Click the "Start" button to begin the tunneling process. HTTPort will create a TCP/IP tunnel between your computer and the proxy server. Configure your client software to use the local port that you specified in step 2 as the proxy server. For example, if you want to use a web browser to browse the web through the HTTP proxy, you would configure the browser to use "localhost" and the local port as the proxy server. Use your client software as you normally would. HTTPort will handle the tunneling of the TCP/IP connection through the HTT...

Denial of Service (DoS) attack

  A Denial of Service (DoS) attack is a type of cyber attack that targets computer systems or networks by overwhelming them with a flood of traffic, thereby preventing legitimate users from accessing the system or network. DoS attacks are typically carried out using botnets, which are networks of compromised computers that are controlled by a hacker. Here's an example of a DoS attack: Suppose an attacker wants to disrupt the operations of a popular e-commerce website during the holiday shopping season. They could launch a DoS attack against the website's servers, flooding them with a massive amount of traffic and requests. The attacker could use a botnet to generate the traffic, using techniques such as IP spoofing or amplification to make the traffic appear to come from many different sources. The traffic flood will quickly overwhelm the web servers and prevent legitimate users from accessing the website, leading to loss of revenue and reputation damage for the e-commerc...