Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

Tuesday, 19 March 2013

How To Use Digital Signature in Asp.net


How To Use Digital Signature in Asp.net 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Security.Cryptography.X509Certificates;
using System.IO;
using System.Text;

public partial class FMS_x509test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        test();
        
    }
    public void test()
    {

        X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
        store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite);
        //Put certificates from the store into a collection so user can select one.
        X509Certificate2Collection fcollection = (X509Certificate2Collection)store.Certificates;
        X509Certificate2Collection collection = X509Certificate2UI.SelectFromCollection(fcollection, "Select an X509 Certificate", "Choose a certificate to examine.", X509SelectionFlag.SingleSelection);
        
        X509Certificate2 certificate = collection[0];
       // X509Certificate2UI.DisplayCertificate(certificate);
        RSACryptoServiceProvider csp = null;
        csp = (RSACryptoServiceProvider)certificate.PrivateKey;
        // Hash the data
        SHA1Managed sha1 = new SHA1Managed();
        UnicodeEncoding encoding = new UnicodeEncoding();
        byte[] data = encoding.GetBytes("Lokesh");
        byte[] hash = sha1.ComputeHash(data);
        byte[] signature = csp.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));

       //Verification Code
        
        
        RSACryptoServiceProvider csp1 = (RSACryptoServiceProvider)certificate.PublicKey.Key;

        // Hash the data
        SHA1Managed sha11 = new SHA1Managed();
        UnicodeEncoding encoding1 = new UnicodeEncoding();
        byte[] data1 = encoding.GetBytes("Lokesh");
        byte[] hash1 = sha1.ComputeHash(data1);

        // Verify the signature with the hash
        if (csp1.VerifyHash(hash1, CryptoConfig.MapNameToOID("SHA1"), signature))
        {
            Response.Write("<script language=javascript> alert('correct');</script/>");
        }
        else
        {
            Response.Write("<script language=javascript> alert('No correct');</script/>");
        }


        // Sign text


        // byte[] signature = Sign("Test", "cn=Dashputre Jaideep JYD");
    }
}

Wednesday, 13 March 2013

Get Current Page Name in Asp.Net

Here I will explain  How toGet  Current page name in Asp.Net using C# and Vb.Net

C# Code 


 public static string GetCurrentPageName()
    {
        string sPath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
        System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath);
        string sRet = oInfo.Name;
        return sRet;
    }


Vb.Net

    Public Shared Function GetCurrentPageName() As String
        Dim sPath As String = System.Web.HttpContext.Current.Request.Url.AbsolutePath
        Dim oInfo As System.IO.FileInfo = New System.IO.FileInfo(sPath)
        Dim sRet As String = oInfo.Name
        Return sRet
    End Function

Check Internet Connection in Asp.net

We can check internet connectivity of system by downloading  data of a website from server for that code like as shown below.

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Check Internet Connection Availability using Asp.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="btnCheck" Text="Check Internet Connectivity" OnClick="btnCheck_Click"/>
<asp:Label runat="server" ID="lbltxt" />
</div>
</form>
</body>
</html>
C# Code 
using System;
using System.Net;
protected void btnCheck_Click(object sender, EventArgs e)
{
WebClient client = new WebClient();
byte[] datasize = null;
try
{
datasize = client.DownloadData("http://www.google.com");
}
catch (Exception ex)
{
}
if (datasize != null && datasize.Length > 0)
lbltxt.Text = "Internet Connection Available.";
else
lbltxt.Text = "Internet Connection Not Available.";
}
Vb.Net
Imports System.Net
Partial Class VBCode
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

End Sub
Protected Sub btnCheck_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim client As New WebClient()
Dim datasize As Byte() = Nothing
Try
datasize = client.DownloadData("http://www.google.com")
Catch ex As Exception
End Try
If datasize IsNot Nothing AndAlso datasize.Length > 0 Then
lbltxt.Text = "Internet Connection Available."
Else
lbltxt.Text = "Internet Connection Not Available."
End If
End Sub
End Class
 

Friday, 8 March 2013

How to upload/download file from FTP Server in Asp.net


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // Upload file
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        //fileName = Name of the file to be downloaded from FTP server.
        string fileName = "test.txt";

        //filePath = The full path where the file is to be created. Here i put local system path.
        string filePath = "C:\\FTP";

        string ftpServerIP = "IP Address";
        string ftpUserID = "User ID";
        string ftpPassword = "Password";
        FtpWebRequest reqFTP;
        try
        {
            FileStream outputStream = new FileStream(filePath + "\\"+ fileName, FileMode.Create);
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(newUri("ftp://" + ftpServerIP + "/" + fileName));
            reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
            Stream ftpStream = response.GetResponseStream();
            long cl = response.ContentLength;
            int bufferSize = 2048;
            int readCount;
            byte[] buffer = new byte[bufferSize];
            readCount = ftpStream.Read(buffer, 0, bufferSize);
            while (readCount > 0)
            {
                outputStream.Write(buffer, 0, readCount);
                readCount = ftpStream.Read(buffer, 0, bufferSize);
            }
            ftpStream.Close();
            outputStream.Close();
            response.Close();
        }
        catch (Exception ex)
        {
            string errMsg = (ex.Message);
        }
    }

    
    // Download file
    protected void btnDownload_Click(object sender, EventArgs e)
    {
        string filename = "c:\\test.txt";
        string ftpServerIP = "IP address";
        string ftpUserID = "User ID";
        string ftpPassword = "Password";

        FileInfo fileInf = new FileInfo(filename);

        string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;

        FtpWebRequest reqFTP;

        // Create FtpWebRequest object
        reqFTP = (FtpWebRequest)FtpWebRequest.Create(newUri("ftp://" + ftpServerIP + "/" + fileInf.Name));

        //Provide ftp userid and password
        reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

        // By default KeepAlive is true, where the control connection is not closed
        // after a command is executed.
        reqFTP.KeepAlive = false;

        //Specify the command to be executed. Here we use upload file command
        reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

        //data transfer type we use here is binary
        reqFTP.UseBinary = true;

        // Notify the server about the size of the uploaded file
        reqFTP.ContentLength = fileInf.Length;

        // The buffer size is set to 2kb
        int buffLength = 2048;

        byte[] buff = new byte[buffLength];

        int contentLen;

        // Opens a file stream (System.IO.FileStream) to read the file to be uploaded
        FileStream fs = fileInf.OpenRead();

        try
        {

            // Stream to which the file to be upload is written
            Stream strm = reqFTP.GetRequestStream();

            // Read from the file stream 2kb at a time
            contentLen = fs.Read(buff, 0, buffLength);

            // Till Stream content ends
            while (contentLen != 0)
            {

                // Write Content from the file stream to the FTP Upload Stream
                strm.Write(buff, 0, contentLen);
                contentLen = fs.Read(buff, 0, buffLength);
            }

            // Close the file stream and the Request Stream
            strm.Close();
            fs.Close();
        }
        catch (Exception ex)
        {
            string ErrMsg = ex.Message;
        }
    }
}