programming4us
           
 
 
Programming

Visual Basic 2010 : Deploying Applications with ClickOnce - Security Considerations, Programmatically Accessing ClickOnce

- Windows 10 Product Activation Keys Free 2019
- How to active Windows 8 without product key
- Malwarebytes Premium 3.7.1 Serial Keys (LifeTime) 2019
7/11/2013 4:01:32 AM

1. Security Considerations

Depending on how an application is deployed or what system resources it needs to have access to, it will be considered under the Full Trust or the Partial Trust rules of .NET Framework Code Access Security. For example, an application that needs to access the Registry or other system resources needs to be full-trusted, but this is not a good idea if your application will be deployed via the Internet, which should instead be partial-trusted. You set the trust level for your ClickOnce deployments in the My Project, Security tab (see Figure 1).

Figure 1. Specifying security settings for the ClickOnce deployment.

The ClickOnce manifest can be signed with Full Trust or Partial Trust. This second option is divided into the Internet and intranet zones. You can choose the most appropriate for you or even create a custom configuration by editing the application manifest file (Edit Permissions XML button).

Providing Certificates

To make ClickOnce deployments the most trustable possible, you should use a certificate. If you take a look at Solution Explorer after you publish the application, you notice that Visual Studio has signed the assembly with a .pfx strong name. This is good in local test scenarios, but the most convenient way (although not mandatory) for providing security information to customers is adding an Authenticode certificate, especially if your application is deployed via the Internet. Visual Studio adds a test certificate, as demonstrated in Figure 2, which shows the Signing tab in My Project.

Figure 2. Signing the ClickOnce manifest.

The test certificate is intended for local testing purposes only and should never be used in real-life deployment, in which you will instead prefer an Authenticode certificate that you can purchase from the specific authorities. After you add a valid certificate, to sign the ClickOnce manifest, full and trusted information will be shown to your customers when they download and install the application.

2. Programmatically Accessing ClickOnce

ClickOnce is handled by the .NET Framework, but more precisely it is part of the .NET Framework. This means that it can be accessed via managed code. The .NET Framework exposes the System.Deployment namespace that offers a managed way for interacting with ClickOnce; particularly the subnamespace System.Deployment.Application and the System.Deployment.Application.ApplicationDeployment class are the most useful items because they offer objects that enable developers to programmatically access ClickOnce information from an application. The ApplicationDeployment class exposes a shared CurrentDeployment property that enables access to interesting information on the current application deployment. The following code demonstrates how you can use the property to retrieve information on the current deployment:

Private Sub GetClickOnceInformation()
    'Checks if the application has been deployed with ClickOnce
    If ApplicationDeployment.IsNetworkDeployed = True Then

        'Retrieves the data folder for this application
        Dim dataFolder As String = ApplicationDeployment.
                                   CurrentDeployment.DataDirectory
        'Retrieves the path where updates will be
        'downloaded from
        Dim updatesPath As Uri = ApplicationDeployment.
                                 CurrentDeployment.UpdateLocation
        'Gets the version number for updates
        Dim updateVersion = ApplicationDeployment.
                            CurrentDeployment.UpdatedVersion
        'Determines the last time that updates where checked for
        Dim lastUpdate As Date = ApplicationDeployment.
                                 CurrentDeployment.TimeOfLastUpdateCheck
    End If
End Sub

You can also programmatically check and download updates; this can be useful if you do not want the application to be automatically updated but you still want to provide the user the ability of updating the application manually. The following code demonstrates this:

Private Sub ApplicationUpdate()

    Dim isUpdateAvailable As Boolean = _
        ApplicationDeployment.CurrentDeployment.CheckForUpdate

    If isUpdateAvailable = True Then
        ApplicationDeployment.CurrentDeployment.Update()
    End If
End Sub

Both methods offer an asynchronous counterpart (CheckForUpdateAsync and UpdateAsync) that can be used as well.

Other -----------------
- Visual Basic 2010 : Deploying Applications with ClickOnce - Configuring ClickOnce
- Visual Basic 2010 : Deploying Applications with ClickOnce
- ASP.NET 4 in VB 2010 : Site Maps (part 3) - Binding Portions of a Site Map, The SiteMap Class
- ASP.NET 4 in VB 2010 : Site Maps (part 2) - Binding an Ordinary Page to a Site Map, Binding a Master Page to a Site Map
- ASP.NET 4 in VB 2010 : Site Maps (part 1) - Defining a Site Map
- DirectX 10 Game Programming : Shaders and Effects - Vertex Shaders
- DirectX 10 Game Programming : Shaders and Effects - High Level Shading Language
- DirectX 10 Game Programming : Shaders and Effects - Effect Files
- Programming Windows Services with Microsoft Visual Basic 2008 : Services and Polling - Updating the Service Events
- Programming Windows Services with Microsoft Visual Basic 2008 : Services and Polling - Adding a Module File, Adding New Polling Code
- Microsoft Visual Studio 2010 : Using the Concurrency Visualizer (part 3) - The Cores View
- Microsoft Visual Studio 2010 : Using the Concurrency Visualizer (part 2) - CPU Utilization View, The Threads View
- Microsoft Visual Studio 2010 : Using the Concurrency Visualizer (part 1)
- Microsoft Visual Studio 2010 : Reports and Debugging - Using the Parallel Stacks Window
- Microsoft Visual Studio 2010 : Reports and Debugging - Using the Parallel Tasks Window
- Microsoft Visual Studio 2010 : Debugging with Visual Studio 2010 (part 2) - Debugging Threads
- Microsoft Visual Studio 2010 : Debugging with Visual Studio 2010 (part 1) - Live Debugging, Performing Post-Mortem Analysis
- .NET Components : Serialization and Class Hierarchies (part 2) - Manual Base-Class Serialization
- .NET Components : Serialization and Class Hierarchies (part 1) - Custom Serialization and Base Classes
- .NET Components : Custom Serialization (part 2) - Constraining Serialization
 
 
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
- First look: Apple Watch

- 3 Tips for Maintaining Your Cell Phone Battery (part 1)

- 3 Tips for Maintaining Your Cell Phone Battery (part 2)
programming4us programming4us
Video Tutorail Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS