using System;
using System.Security;
using System.Security.Principal;
using System.Security.Permissions;
class Program {
static void Main(string[] args) {
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
try {
ShowMessage();
} catch (SecurityException exception) {
Console.WriteLine(exception.Message);
}
}
[PrincipalPermissionAttribute(SecurityAction.Demand,Role = "BUILTINUsers")]
static void ShowMessage() {
Console.WriteLine("The current principal is logged in locally ");
Console.WriteLine("(they are a member of the local Users group)");
}
}
Month: February 2011
Configure the AppDomainSetup
using System;
class Test
{
public static void Main()
{
AppDomainSetup setupInfo = new AppDomainSetup();
setupInfo.ApplicationBase = @"C:MyRootDirectory";
setupInfo.ConfigurationFile = "MyApp.config";
setupInfo.PrivateBinPath = "bin;plugins;external";
AppDomain newDomain =
AppDomain.CreateDomain("My New AppDomain", null, setupInfo);
}
}
SetData, GetData
using System;
using System.Reflection;
using System.Collections;
class ListModifier{
public ListModifier()
{
ArrayList list = (ArrayList)AppDomain.CurrentDomain.GetData("Pets");
list.Add("turtle");
}
}
class MainClass{
public static void Main(){
AppDomain domain = AppDomain.CreateDomain("Test");
ArrayList list = new ArrayList();
list.Add("dog");
list.Add("cat");
list.Add("fish");
domain.SetData("Pets", list);
domain.CreateInstance("MainClass","Apress.VisualCSharpRecipes.Chapter03.ListModifier");
foreach (string s in (ArrayList)domain.GetData("Pets")) {
Console.WriteLine(s);
}
}
}
AppDomain.CreateDomain
using System;
class MainClass
{
public static void Main()
{
AppDomainSetup setupInfo = new AppDomainSetup();
setupInfo.ApplicationBase = @"C:MyRootDirectory";
setupInfo.ConfigurationFile = "MyApp.config";
setupInfo.PrivateBinPath = "bin;plugins;external";
AppDomain newDomain = AppDomain.CreateDomain("My New AppDomain", null, setupInfo);
}
}
ClientCertificates
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
class MainClass {
public static void Main() {
WebRequest requestA = WebRequest.Create("http://www.yoursite.com");
requestA.Credentials = new NetworkCredential("userName", "password");
requestA.PreAuthenticate = true;
WebRequest requestB = WebRequest.Create("http://www.yoursite.com");
requestB.Credentials = CredentialCache.DefaultCredentials;
requestB.PreAuthenticate = true;
HttpWebRequest requestC = (HttpWebRequest)WebRequest.Create("http://www.yoursite.com");
X509Certificate cert1 = X509Certificate.CreateFromCertFile("TestCertificate.cer");
requestC.ClientCertificates.Add(cert1);
HttpWebRequest requestD = (HttpWebRequest)WebRequest.Create("http://www.yoursite.com");
X509Store store = new X509Store();
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName,"Joe", false);
if (certs.Count == 1) {
requestD.ClientCertificates.Add(certs[0]);
} else {
certs = X509Certificate2UI.SelectFromCollection(
store.Certificates,
"Select Certificate",
"Select the certificate to use for authentication.",
X509SelectionFlag.SingleSelection);
if (certs.Count != 0) {
requestD.ClientCertificates.Add(certs[0]);
}
}
}
}
Returns a SHA1 hash of a given plaintext
//---------------------------------------------------------------------
// This file is part of the Background Motion solution.
//
// Copyright (C) Mindscape (TM). All rights reserved.
// http://www.mindscape.co.nz
//
// THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//---------------------------------------------------------------------
using System;
using System.Security.Cryptography;
using System.Text;
namespace Mindscape.BackgroundMotion.Core.Utilities
{
/// <summary>
/// Helper class which provides functions for assisting with hashing values
/// </summary>
public static class Hasher
{
/// <summary>
/// Returns a SHA1 hash of a given plaintext
/// </summary>
public static string GetSHA1Hash(string plaintext)
{
return BitConverter.ToString(new SHA1CryptoServiceProvider()
.ComputeHash(Encoding.Default.GetBytes(plaintext)))
.Replace("-", String.Empty);
}
}
}
Encrypt SHA256
//-----------------------------------------------------------------------
// <copyright file="CryptoUtil.cs" company="Pyramid Consulting">
// Copyright (c) Pyramid Consulting. All rights reserved.
// khoa.tran - 15-Dec-2007
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
namespace Bamboo.Core.Common.Crypto
{
public class CryptoUtil
{
public static byte[] EncryptSHA256(string text)
{
SHA256 sha256 = SHA256.Create();
UTF8Encoding encoding = new UTF8Encoding();
return sha256.ComputeHash(encoding.GetBytes(text));
}
}
}

