Moving micasa 1.5 trunk to Novell forge.
This commit is contained in:
0
ClientPasswordManager/AUTHORS
Normal file
0
ClientPasswordManager/AUTHORS
Normal file
0
ClientPasswordManager/ChangeLog
Normal file
0
ClientPasswordManager/ChangeLog
Normal file
73
ClientPasswordManager/ClientPasswordManager.csproj
Normal file
73
ClientPasswordManager/ClientPasswordManager.csproj
Normal file
@@ -0,0 +1,73 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{A25ED38C-7EC6-4587-8F3F-0312CA3714FF}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = ""
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "ClientPasswordManager"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Exe"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "ClientPasswordManager"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References/>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include/>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
48
ClientPasswordManager/ClientPasswordManager.csproj.user
Normal file
48
ClientPasswordManager/ClientPasswordManager.csproj.user
Normal file
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
66
ClientPasswordManager/ClientPasswordManager.sln
Normal file
66
ClientPasswordManager/ClientPasswordManager.sln
Normal file
@@ -0,0 +1,66 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "c-sharp-net-credential", "c-sharp-net-credential\c-sharp-net-credential.csproj", "{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{5A211C70-3AEB-4305-8CB6-42757D01DC22} = {5A211C70-3AEB-4305-8CB6-42757D01DC22}
|
||||
{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C} = {AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5} = {BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "c-sharp-password-dialog", "c-sharp-password-dialog\c-sharp-password-dialog.csproj", "{5A211C70-3AEB-4305-8CB6-42757D01DC22}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5} = {BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "c-sharp-username-dialog", "c-sharp-username-dialog\c-sharp-username-dialog.csproj", "{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5} = {BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "c-sharp-utilities", "c-sharp-utilities\c-sharp-utilities.csproj", "{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "clientpasswordmanager-msm", "package\windows\clientpasswordmanager-msm\clientpasswordmanager-msm.vdproj", "{673D662C-A6F2-4D38-A001-90BD03963CEB}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tester", "Tester\Tester.csproj", "{45A551B6-8919-411F-8711-D34B267E08F4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}.Debug.ActiveCfg = Debug|.NET
|
||||
{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}.Debug.Build.0 = Debug|.NET
|
||||
{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}.Release.ActiveCfg = Release|.NET
|
||||
{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}.Release.Build.0 = Release|.NET
|
||||
{5A211C70-3AEB-4305-8CB6-42757D01DC22}.Debug.ActiveCfg = Debug|.NET
|
||||
{5A211C70-3AEB-4305-8CB6-42757D01DC22}.Debug.Build.0 = Debug|.NET
|
||||
{5A211C70-3AEB-4305-8CB6-42757D01DC22}.Release.ActiveCfg = Release|.NET
|
||||
{5A211C70-3AEB-4305-8CB6-42757D01DC22}.Release.Build.0 = Release|.NET
|
||||
{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}.Debug.ActiveCfg = Debug|.NET
|
||||
{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}.Debug.Build.0 = Debug|.NET
|
||||
{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}.Release.ActiveCfg = Release|.NET
|
||||
{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}.Release.Build.0 = Release|.NET
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}.Debug.ActiveCfg = Debug|.NET
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}.Debug.Build.0 = Debug|.NET
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}.Release.ActiveCfg = Release|.NET
|
||||
{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}.Release.Build.0 = Release|.NET
|
||||
{673D662C-A6F2-4D38-A001-90BD03963CEB}.Debug.ActiveCfg = Debug
|
||||
{673D662C-A6F2-4D38-A001-90BD03963CEB}.Debug.Build.0 = Debug
|
||||
{673D662C-A6F2-4D38-A001-90BD03963CEB}.Release.ActiveCfg = Release
|
||||
{673D662C-A6F2-4D38-A001-90BD03963CEB}.Release.Build.0 = Release
|
||||
{45A551B6-8919-411F-8711-D34B267E08F4}.Debug.ActiveCfg = Debug|.NET
|
||||
{45A551B6-8919-411F-8711-D34B267E08F4}.Debug.Build.0 = Debug|.NET
|
||||
{45A551B6-8919-411F-8711-D34B267E08F4}.Release.ActiveCfg = Release|.NET
|
||||
{45A551B6-8919-411F-8711-D34B267E08F4}.Release.Build.0 = Release|.NET
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
ClientPasswordManager/ClientPasswordManager.suo
Normal file
BIN
ClientPasswordManager/ClientPasswordManager.suo
Normal file
Binary file not shown.
50
ClientPasswordManager/Makefile.am
Normal file
50
ClientPasswordManager/Makefile.am
Normal file
@@ -0,0 +1,50 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
if DEBUG
|
||||
TARGET_CFG = Debug
|
||||
else
|
||||
TARGET_CFG = Release
|
||||
endif
|
||||
|
||||
SUBDIRS = c-sharp-utilities c-sharp-password-dialog c-sharp-username-dialog c-sharp-net-credential package
|
||||
|
||||
EXTRA_DIST =
|
||||
|
||||
.PHONY: package package-clean package-install package-uninstall
|
||||
package package-clean package-install package-uninstall:
|
||||
$(MAKE) -C package $@
|
||||
|
||||
installcheck-summary:
|
||||
$(MAKE) -C src $@
|
||||
|
||||
clean-local:
|
||||
rm -rf *.suo
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f configure Makefile.in clientpasswordmanager-*.tar.gz
|
||||
rm -f aclocal.m4 conf*.sh configure.lineno
|
||||
rm -f config.guess config.sub config.status
|
||||
rm -f ltmain.sh libtool
|
||||
rm -f install-sh install-sh.lnk INSTALL INSTALL.lnk
|
||||
rm -f missing missing.lnk mkinstalldirs mkinstalldir.lnk
|
||||
rm -rf autom4te.cache
|
||||
0
ClientPasswordManager/NEWS
Normal file
0
ClientPasswordManager/NEWS
Normal file
193
ClientPasswordManager/README
Normal file
193
ClientPasswordManager/README
Normal file
@@ -0,0 +1,193 @@
|
||||
/***********************************************************************
|
||||
* File: README
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
The ClientPasswordManager provides a set of libraries to allow applications
|
||||
to share user name and password credentials. The ClientPasswordManager also
|
||||
provides dialog components that can be leveraged by applications to prompt
|
||||
users for credentials.
|
||||
|
||||
The goal of the ClientPasswordManager is to minimize the number of prompts
|
||||
that users experience when accessing applications that require the user's
|
||||
name and password to authenticate to backend systems.
|
||||
|
||||
A secondary goal of the ClientPasswordManager is to normalize the prompts
|
||||
for credentials that are seen by the user.
|
||||
|
||||
FEATURES
|
||||
|
||||
The ClientPasswordManager consists of APIs for obtaining/setting user password
|
||||
credentials as well as a set of dialogs that can be used to prompt the user
|
||||
for its credentials.
|
||||
|
||||
The ClientPasswordManager leverages the services of the SecretStore Client Wallet
|
||||
Service for the secure storage of user credentials and for controlling access to
|
||||
the credentials. Usage of the ClientPasswordManager instead of writting to the
|
||||
SecretStore Wallet API directly free applications from having to agree on a
|
||||
standard on how credentials need to be stored in the wallet.
|
||||
|
||||
The ClientPasswordManager will try to make its services available to native, .NET,
|
||||
and Java applications.
|
||||
|
||||
CONTENTS
|
||||
|
||||
c-sharp-net-credential - This folder contains an implemtation of the .NET ICredentials
|
||||
interface called the NetCredential class. NetCredential objects leverage the contents
|
||||
of the wallet when queried for user credentials.
|
||||
|
||||
c-sharp-password-dialog - This folder contains a dialog class that can be used by .NET
|
||||
applications to query the user for its password.
|
||||
|
||||
c-sharp-username-dialog - This folder contains a dialog class that can be used by .NET
|
||||
applications to query the user for its user name.
|
||||
|
||||
c-sharp-utilities - This folder contains .NET utilities leveraged by ClientPAsswordManager
|
||||
.NET components.
|
||||
|
||||
package - This folder contains the files necessary to build the software packages
|
||||
under windows and under linux.
|
||||
|
||||
REQUIREMENTS FOR BUILDING THE SOFTWARE PACKAGE ON WINDOWS
|
||||
|
||||
- Install Visual Studio .NET 2003
|
||||
- Install Cygwin - See instructions below.
|
||||
|
||||
Download and start cygwin install:
|
||||
Browse to http://sources.redhat.com/cygwin/
|
||||
|
||||
Click on "Install or update now!" or "Install Cygwin now"
|
||||
|
||||
Cygwin Setup:
|
||||
Next
|
||||
|
||||
Cygwin Setup - Choose Installation Type:
|
||||
Install from Internet
|
||||
Next
|
||||
|
||||
Cygwin Setup - Choose Installation Directory:
|
||||
Root Directory: C:\cygwin
|
||||
Install For: "All Users"
|
||||
|
||||
Default Text File Type: DOS
|
||||
|
||||
Cygwin Setup - Select Local Package Directory:
|
||||
Local Package Directory: C:\cygwin-packages
|
||||
|
||||
Cygwin Setup - Select Connection Type:
|
||||
Direct Connection
|
||||
|
||||
Choose A Download Site:
|
||||
ftp://ftp.nas.nasa.gov
|
||||
|
||||
Cywin Setup - Select Packages:
|
||||
Base:
|
||||
defaults
|
||||
|
||||
Devel:
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
make
|
||||
pkgconfig
|
||||
cvs
|
||||
gcc
|
||||
gcc-g++
|
||||
|
||||
Editors:
|
||||
vim (optional)
|
||||
|
||||
Net:
|
||||
openssh
|
||||
openssl
|
||||
|
||||
Text:
|
||||
more
|
||||
|
||||
Utils:
|
||||
clear (optional)
|
||||
|
||||
Cygwin Setup - Create Icons:
|
||||
Finish
|
||||
|
||||
Edit cygwin.bat (c:\cygwin\cygwin.bat) to add a call to
|
||||
%VS71COMNTOOLS%\vsvars32.bat (see example below). This sets up the
|
||||
Visual Studio tools in Cygwin.
|
||||
|
||||
Sample cygwin.bat:
|
||||
|
||||
@echo off
|
||||
|
||||
call "%VS71COMNTOOLS%\vsvars32.bat" > NUL
|
||||
|
||||
C:
|
||||
chdir C:\cygwin\bin
|
||||
|
||||
bash --login -i
|
||||
|
||||
|
||||
REQUIREMENTS FOR BUILDING THE SOFTWARE PACKAGE ON LINUX
|
||||
|
||||
Install latest mono and mono-devel RPM - Obtain RPMs from
|
||||
www.go-mono.org.
|
||||
|
||||
|
||||
BUILDING THE SOFTWARE PACKAGE
|
||||
|
||||
Windows: Start at Step 1.
|
||||
Linux: Skip to Step 2.
|
||||
|
||||
1. Run cygwin.bat to start up Cygwin.
|
||||
|
||||
2. Generate autotools files:
|
||||
./autogen.sh --prefix=/<install_dir> [--enable-debug]
|
||||
(<install_dir> is some writable directory where 'make install' will
|
||||
install files for testing.
|
||||
|
||||
3. To reconfigure later, or to configure software that came from a source
|
||||
distribution (.tar.gz) file, use configure.
|
||||
./configure --prefix/<install_dir> [--enable-debug]
|
||||
(run ./configure --help for more options)
|
||||
|
||||
4. Select your make target, here are a few interesting ones:
|
||||
|
||||
make [all] - build product files (package files not included)
|
||||
|
||||
make clean - clean up files built by 'make all'
|
||||
|
||||
make package - build product and package files
|
||||
|
||||
make package-clean - clean up package files
|
||||
|
||||
make install - install product files to <install_dir> specified by
|
||||
--prefix during configure
|
||||
|
||||
make uninstall - undo 'make install'
|
||||
|
||||
make dist - build a source distribution tarball.
|
||||
|
||||
make distclean - removes files to return state back to same as the
|
||||
source distribution (configure, Makefile.in files, and other distributed
|
||||
autotools files are not removed)
|
||||
|
||||
make maintainer-clean - removes files to return state back to same as
|
||||
the CVS checkout (you will need to run ./autogen.sh again before running
|
||||
make again)
|
||||
|
||||
BIN
ClientPasswordManager/Tester/App.ico
Normal file
BIN
ClientPasswordManager/Tester/App.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
58
ClientPasswordManager/Tester/AssemblyInfo.cs
Normal file
58
ClientPasswordManager/Tester/AssemblyInfo.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly: AssemblyTitle("")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
// Microsoft .NET Framework documentation for more information on assembly signing.
|
||||
//
|
||||
// Use the attributes below to control which key is used for signing.
|
||||
//
|
||||
// Notes:
|
||||
// (*) If no key is specified, the assembly is not signed.
|
||||
// (*) KeyName refers to a key that has been installed in the Crypto Service
|
||||
// Provider (CSP) on your machine. KeyFile refers to a file which contains
|
||||
// a key.
|
||||
// (*) If the KeyFile and the KeyName values are both specified, the
|
||||
// following processing occurs:
|
||||
// (1) If the KeyName can be found in the CSP, that key is used.
|
||||
// (2) If the KeyName does not exist and the KeyFile does exist, the key
|
||||
// in the KeyFile is installed into the CSP and used.
|
||||
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
|
||||
// When specifying the KeyFile, the location of the KeyFile should be
|
||||
// relative to the project output directory which is
|
||||
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
|
||||
// located in the project directory, you would specify the AssemblyKeyFile
|
||||
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
|
||||
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
|
||||
// documentation for more information on this.
|
||||
//
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
85
ClientPasswordManager/Tester/Class1.cs
Normal file
85
ClientPasswordManager/Tester/Class1.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Reflection ;
|
||||
using Novell.Security.ClientPasswordManager;
|
||||
|
||||
|
||||
namespace Tester
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for Class1.
|
||||
/// </summary>
|
||||
class Class1
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// call NetCredential code
|
||||
NetCredential nc = new NetCredential("Ifolder", "Network", true, "jnorman", "novell");
|
||||
NetCredential nc2 = new NetCredential("Ifolder", null, false, "ifolderusername", "novell");
|
||||
|
||||
NetworkCredential nwc = nc2.GetCredential(new System.Uri("http://IFolder"), "Basic");
|
||||
|
||||
if (nwc != null)
|
||||
{
|
||||
Console.WriteLine("Username: "+ nwc.UserName);
|
||||
Console.WriteLine("Password: "+ nwc.Password);
|
||||
}
|
||||
|
||||
/*
|
||||
// call SetCredential
|
||||
Type type = assembly.GetType("Novell.CASA.miCASA");
|
||||
MemberInfo[] members = type.GetMembers();
|
||||
|
||||
object Instance = Activator.CreateInstance (type);
|
||||
|
||||
object[] cargs = new object[4];
|
||||
//cargs[0] = 0;
|
||||
cargs[0] = "AppSecretIDTest";
|
||||
cargs[1] = null; //"SharedSecretIDTEST";
|
||||
//cargs[3] = 0;
|
||||
cargs[2] = "Username";
|
||||
cargs[3] = "password";
|
||||
|
||||
object result; // = type.InvokeMember ("SetCredential" ,BindingFlags.InvokeMethod ,null,Instance,cargs);
|
||||
// call SetBasicCredential
|
||||
try
|
||||
{
|
||||
type.InvokeMember("SetBasicCredential", BindingFlags.InvokeMethod, null, Instance, cargs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
|
||||
|
||||
// now get the basicCred back
|
||||
try
|
||||
{
|
||||
object[] getArgs = new object[2];
|
||||
getArgs[0] = "AppSecretIDTest";
|
||||
getArgs[1] = null;
|
||||
|
||||
|
||||
result = type.InvokeMember("GetCredentialUsername", BindingFlags.InvokeMethod, null, Instance, getArgs);
|
||||
Console.WriteLine("Username: "+result.ToString());
|
||||
|
||||
result = type.InvokeMember("GetCredentialPassword", BindingFlags.InvokeMethod, null, Instance, getArgs);
|
||||
Console.WriteLine("Password: "+result.ToString());
|
||||
// invoke the GetUsername and GetPassword methods
|
||||
//Type basicCred = assembly.GetType("Novell.CASA.miCASA.BasicCredential");
|
||||
//object username = basicCred.InvokeMember("GetUsername", BindingFlags.InvokeMethod, null, result, null);
|
||||
//object password = basicCred.InvokeMember("GetPassword", BindingFlags.InvokeMethod, null, result, null);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
109
ClientPasswordManager/Tester/Tester.csproj
Normal file
109
ClientPasswordManager/Tester/Tester.csproj
Normal file
@@ -0,0 +1,109 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{45A551B6-8919-411F-8711-D34B267E08F4}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = "App.ico"
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "Tester"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Exe"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "Tester"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "Novell.Security.ClientPasswordManager.NetCredential"
|
||||
AssemblyName = "Novell.Security.ClientPasswordManager.NetCredential"
|
||||
HintPath = "..\c-sharp-net-credential\bin\Debug\Novell.Security.ClientPasswordManager.NetCredential.dll"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "App.ico"
|
||||
BuildAction = "Content"
|
||||
/>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "Class1.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
48
ClientPasswordManager/Tester/Tester.csproj.user
Normal file
48
ClientPasswordManager/Tester/Tester.csproj.user
Normal file
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "D:\ccm\SSClient\ClientPasswordManager\c-sharp-net-credential\bin\Debug\;D:\ccm\SSClient\SecretStoreClient_src\ClientPasswordManager\c-sharp-net-credential\bin\Debug\" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
130
ClientPasswordManager/autogen.sh
Normal file
130
ClientPasswordManager/autogen.sh
Normal file
@@ -0,0 +1,130 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
ORIGDIR=`pwd`
|
||||
cd $srcdir
|
||||
PROJECT=ClientPasswordManager
|
||||
TEST_TYPE=-f
|
||||
FILE=c-sharp-net-credential/NetCredential.cs
|
||||
|
||||
DIE=0
|
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have autoconf installed to compile $PROJECT."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
AUTOMAKE=automake-1.7
|
||||
ACLOCAL=aclocal-1.7
|
||||
|
||||
($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
AUTOMAKE=automake
|
||||
ACLOCAL=aclocal
|
||||
}
|
||||
|
||||
($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have automake installed to compile $PROJECT."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
if test "$DIE" -eq 1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test $TEST_TYPE $FILE || {
|
||||
echo "You must run this script in the top-level $PROJECT directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if test -z "$*"; then
|
||||
echo "I am going to run ./configure with no arguments - if you wish "
|
||||
echo "to pass any to it, please specify them on the $0 command line."
|
||||
fi
|
||||
|
||||
case $CC in
|
||||
*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;;
|
||||
esac
|
||||
|
||||
for coin in `find $srcdir -name configure.in -print`
|
||||
do
|
||||
dr=`dirname $coin`
|
||||
if test -f $dr/NO-AUTO-GEN; then
|
||||
echo skipping $dr -- flagged as no auto-gen
|
||||
else
|
||||
echo processing $dr
|
||||
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
|
||||
( cd $dr
|
||||
aclocalinclude="$ACLOCAL_FLAGS"
|
||||
for k in $macrodirs; do
|
||||
if test -d $k; then
|
||||
aclocalinclude="$aclocalinclude -I $k"
|
||||
##else
|
||||
## echo "**Warning**: No such directory \`$k'. Ignored."
|
||||
fi
|
||||
done
|
||||
if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then
|
||||
if grep "sed.*POTFILES" configure.in >/dev/null; then
|
||||
: do nothing -- we still have an old unmodified configure.in
|
||||
else
|
||||
echo "Creating $dr/aclocal.m4 ..."
|
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||
echo "Running gettextize... Ignore non-fatal messages."
|
||||
echo "no" | gettextize --force --copy
|
||||
echo "Making $dr/aclocal.m4 writable ..."
|
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||
fi
|
||||
fi
|
||||
if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then
|
||||
echo "Creating $dr/aclocal.m4 ..."
|
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||
echo "Running gettextize... Ignore non-fatal messages."
|
||||
echo "no" | gettextize --force --copy
|
||||
echo "Making $dr/aclocal.m4 writable ..."
|
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||
fi
|
||||
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
|
||||
echo "Creating $dr/aclocal.m4 ..."
|
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||
echo "Running gettextize... Ignore non-fatal messages."
|
||||
echo "no" | glib-gettextize --force --copy
|
||||
echo "Making $dr/aclocal.m4 writable ..."
|
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||
fi
|
||||
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
|
||||
echo "Running libtoolize..."
|
||||
libtoolize --force --copy
|
||||
fi
|
||||
echo "Running $ACLOCAL $aclocalinclude ..."
|
||||
$ACLOCAL $aclocalinclude
|
||||
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
|
||||
echo "Running autoheader..."
|
||||
autoheader
|
||||
fi
|
||||
echo "Running $AUTOMAKE --gnu $am_opt ..."
|
||||
$AUTOMAKE --add-missing --gnu $am_opt
|
||||
echo "Running autoconf ..."
|
||||
autoconf
|
||||
)
|
||||
fi
|
||||
done
|
||||
|
||||
conf_flags="--config-cache --enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
|
||||
|
||||
cd "$ORIGDIR"
|
||||
|
||||
if test x$NOCONFIGURE = x; then
|
||||
echo Running $srcdir/configure $conf_flags "$@" ...
|
||||
$srcdir/configure $conf_flags "$@" \
|
||||
&& echo Now type \`make\' to compile $PROJECT || exit 1
|
||||
else
|
||||
echo Skipping configure process.
|
||||
fi
|
||||
58
ClientPasswordManager/c-sharp-net-credential/AssemblyInfo.cs
Normal file
58
ClientPasswordManager/c-sharp-net-credential/AssemblyInfo.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly: AssemblyTitle("Novell.Security.ClientPasswordManager NetCredential")]
|
||||
[assembly: AssemblyDescription("Implements the NetCredential class for Novell.Security.ClientPasswordManager")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Novell, Inc.")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("Copyright (C) 2004 Novell, Inc.")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
// Microsoft .NET Framework documentation for more information on assembly signing.
|
||||
//
|
||||
// Use the attributes below to control which key is used for signing.
|
||||
//
|
||||
// Notes:
|
||||
// (*) If no key is specified, the assembly is not signed.
|
||||
// (*) KeyName refers to a key that has been installed in the Crypto Service
|
||||
// Provider (CSP) on your machine. KeyFile refers to a file which contains
|
||||
// a key.
|
||||
// (*) If the KeyFile and the KeyName values are both specified, the
|
||||
// following processing occurs:
|
||||
// (1) If the KeyName can be found in the CSP, that key is used.
|
||||
// (2) If the KeyName does not exist and the KeyFile does exist, the key
|
||||
// in the KeyFile is installed into the CSP and used.
|
||||
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
|
||||
// When specifying the KeyFile, the location of the KeyFile should be
|
||||
// relative to the project output directory which is
|
||||
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
|
||||
// located in the project directory, you would specify the AssemblyKeyFile
|
||||
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
|
||||
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
|
||||
// documentation for more information on this.
|
||||
//
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("..\\..\\c-sharp-net-credential.snk")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
77
ClientPasswordManager/c-sharp-net-credential/Makefile.am
Normal file
77
ClientPasswordManager/c-sharp-net-credential/Makefile.am
Normal file
@@ -0,0 +1,77 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
if DEBUG
|
||||
TARGET_CFG = Debug
|
||||
else
|
||||
TARGET_CFG = Release
|
||||
endif
|
||||
|
||||
# handle Mono secondary dependencies
|
||||
export MONO_PATH := $(MONO_PATH)
|
||||
|
||||
Module_CSFILES = $(srcdir)/NetCredential.cs
|
||||
Module_CSFILES_CSC := $(subst /,$(SEP),$(Module_CSFILES))
|
||||
Module_KEYFILE = $(srcdir)/c-sharp-net-credential.snk
|
||||
Module_INCLUDES =
|
||||
Module_RESOURCES =
|
||||
Module_FLAGS = $(CSC_LIBFLAG)
|
||||
Module_LIBS = System.dll System.Data.dll $(SYSTEM_XML) Novell.Security.ClientPasswordManager.PasswordDialog.dll Novell.Security.ClientPasswordManager.UsernameDialog.dll Novell.Security.Utilities.dll
|
||||
Module_LIBPATH = ../c-sharp-password-dialog/bin/$(TARGET_CFG) ../c-sharp-username-dialog/bin/$(TARGET_CFG) ../c-sharp-utilities/bin/$(TARGET_CFG)
|
||||
|
||||
EXTRA_DIST = $(Module_CSFILES) $(Module_KEYFILE)
|
||||
|
||||
CUR_DIR := $(shell pwd)
|
||||
|
||||
all: Novell.Security.ClientPasswordManager.NetCredential.dll
|
||||
|
||||
Novell.Security.ClientPasswordManager.NetCredential.dll: $(Module_CSFILES) $(Module_RESOURCES)
|
||||
$(mkinstalldirs) bin/$(TARGET_CFG)
|
||||
if WINDOWS
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.NetCredential.doc.xml
|
||||
else
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) /keyfile:$(Module_KEYFILE) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.NetCredential.doc.xml
|
||||
endif
|
||||
|
||||
install-exec-local: Novell.Security.ClientPasswordManager.NetCredential.dll
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
$(INSTALL_PROGRAM) bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.NetCredential.dll $(DESTDIR)$(libdir)/
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)$(libdir); rm -f Novell.Security.ClientPasswordManager.NetCredential.dll
|
||||
rmdir $(DESTDIR)$(libdir)
|
||||
|
||||
#installcheck-local: install
|
||||
# $(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
# $(INSTALL_PROGRAM) $(DESTDIR)$(libdir)
|
||||
# cd $(DESTDIR)$(libdir); $(MONO)
|
||||
|
||||
CLEAN_FILES = bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.NetCredential.dll /doc:Novell.Security.ClientPasswordManager.NetCredential.doc.xml
|
||||
|
||||
clean-local:
|
||||
rm -rf *.dbg *.exe *.dll $(CLEAN_FILES)
|
||||
|
||||
distclean-local:
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
471
ClientPasswordManager/c-sharp-net-credential/NetCredential.cs
Normal file
471
ClientPasswordManager/c-sharp-net-credential/NetCredential.cs
Normal file
@@ -0,0 +1,471 @@
|
||||
/***********************************************************************
|
||||
* File: NetCredential.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
*
|
||||
* Namespace: Novell.Security.ClientPasswordManager
|
||||
*
|
||||
* Classes implemented: NetCredential.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using Novell.Security;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Novell.Security.ClientPasswordManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides an implementation of ICredentials that leverages the
|
||||
/// services of the SecretStore Client Service Wallet.
|
||||
/// </summary>
|
||||
public class NetCredential: ICredentials
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
// This is temporary until we add code to interact with the SecretStore
|
||||
private class UserCache
|
||||
{
|
||||
public string m_userName;
|
||||
public CredentialCache m_credentialCache;
|
||||
|
||||
public UserCache()
|
||||
{
|
||||
m_userName = null;
|
||||
m_credentialCache = null;
|
||||
}
|
||||
}
|
||||
|
||||
// This is temporary until we add code to interact with the SecretStore
|
||||
private static UserCache[] m_userCaches = new UserCache[10];
|
||||
|
||||
private string m_svcName = null;
|
||||
private string m_svcGroupName = null;
|
||||
private string m_userName = null;
|
||||
private string m_password = null;
|
||||
private string m_credScope = null;
|
||||
|
||||
private bool m_haveCredentials;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private static bool bMiCasaIsAvailable = false;
|
||||
private static Assembly assembly = null; //
|
||||
private static string MI_CASA_CLASS_NAME = "Novell.CASA.miCASA";
|
||||
|
||||
|
||||
static NetCredential()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
assembly = Assembly.LoadWithPartialName("Novell.CASA.miCASAWrapper");
|
||||
if (assembly != null)
|
||||
bMiCasaIsAvailable = true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Dbg.trcError(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a NetCredential object for Windows Applications.
|
||||
///
|
||||
/// There is a high probability that services under the same group share the
|
||||
/// same user name and passwords. By specifying a service group name, the caller wants to
|
||||
/// take advantage of this to try to improve the user experience. If the service group
|
||||
/// name is not specified then no effort is made to share usernames and passwords with
|
||||
/// other services.
|
||||
///
|
||||
/// If the svcGroupNameIsRealmName parameter is set to true then it is assumed that
|
||||
/// the services in the group validate username and passwords against the same
|
||||
/// database or against synchronized databases.
|
||||
///
|
||||
/// If the svcGroupNameIsRealmName parameter is set to false then an attempt will be
|
||||
/// made to share passwords between the services in the group but services will be
|
||||
/// allowed to use different passwords. Specifying a service group does not mean
|
||||
/// that the system will not be able to obtain a username and password that is
|
||||
/// unique to a particular service.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service requesting credentials.</param>
|
||||
/// <param name="svcGroupName">Name of group to which the service belongs, can be null or zero length.</param>
|
||||
/// <param name="svcGroupNameIsRealmName">The group name is the name of the backend authentication realm.</param>
|
||||
/// <param name="userName">Name of the user.</param>
|
||||
/// <param name="password">User password if known, otherwise null or empty string.</param>
|
||||
public NetCredential(string svcName,
|
||||
string svcGroupName,
|
||||
bool svcGroupNameIsRealmName,
|
||||
string userName,
|
||||
string password)
|
||||
{
|
||||
// Check input parameters
|
||||
if (svcName == null
|
||||
|| svcName.Length == 0
|
||||
|| (svcGroupNameIsRealmName
|
||||
&& (svcGroupName == null
|
||||
|| svcGroupName.Length == 0))
|
||||
|| userName == null
|
||||
|| userName.Length == 0)
|
||||
{
|
||||
Dbg.trcError("NetCredential constructor- Invalid input parameter");
|
||||
throw new Exception("NetCredential constructor- Invalid input parameter");
|
||||
}
|
||||
|
||||
m_svcName = svcName;
|
||||
m_svcGroupName = svcGroupName;
|
||||
m_userName = userName;
|
||||
m_password = password;
|
||||
|
||||
// Determine the name under which the credentials are scoped
|
||||
if (svcGroupNameIsRealmName)
|
||||
m_credScope = m_svcGroupName;
|
||||
else
|
||||
m_credScope = m_svcName;
|
||||
|
||||
// Check if we need to update the credential cache
|
||||
if (password != null
|
||||
&& password.Length != 0)
|
||||
{
|
||||
if (bMiCasaIsAvailable)
|
||||
{
|
||||
UpdateMiCasaCredential(userName, password, m_svcName, svcGroupName);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateCredentialCache(userName, password, m_credScope);
|
||||
}
|
||||
|
||||
// Remember that there object has credentials associated with it to avoid
|
||||
// looking them up in the cache at a later time.
|
||||
m_haveCredentials = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Indicate that we need to look up the credentials in the cache
|
||||
m_haveCredentials = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a NetCredential object.
|
||||
///
|
||||
/// No effort is made to share usernames and passwords with other services.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service requesting credentials.</param>
|
||||
/// <param name="userName">Name of the user.</param>
|
||||
/// <param name="password">User password if known, otherwise null or empty string. Not meaningfull if username is not specified.</param>
|
||||
public NetCredential(string svcName,
|
||||
string userName,
|
||||
string password)
|
||||
{
|
||||
// Check input parameters
|
||||
if (svcName == null
|
||||
|| svcName.Length == 0
|
||||
|| userName == null
|
||||
|| userName.Length == 0)
|
||||
{
|
||||
Dbg.trcError("NetCredential constructor- Invalid input parameter");
|
||||
throw new Exception("NetCredential constructor- Invalid input parameter");
|
||||
}
|
||||
|
||||
m_svcName = svcName;
|
||||
m_userName = userName;
|
||||
m_password = password;
|
||||
|
||||
// The credentials are scoped to the service name
|
||||
m_credScope = m_svcName;
|
||||
|
||||
// Check if we need to update the credential cache
|
||||
if (password != null
|
||||
&& password.Length != 0)
|
||||
{
|
||||
|
||||
if (bMiCasaIsAvailable)
|
||||
{
|
||||
UpdateMiCasaCredential(userName, password, m_svcName, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateCredentialCache(userName, password, m_credScope);
|
||||
}
|
||||
|
||||
// Remember that there object has credentials associated with it to avoid
|
||||
// looking them up in the cache at a later time.
|
||||
m_haveCredentials = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Indicate that we need to look up the credentials in the cache
|
||||
m_haveCredentials = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a NetworkCredential instance from the cache.
|
||||
/// </summary>
|
||||
/// <param name="uriPrefix">A Uri that specifies the URI prefix of the resources that the credential is used for.</param>
|
||||
/// <param name="authType">The authentication scheme used by the host named in <i>uriPrefix</i>. </param>
|
||||
public void Remove(Uri uriPrefix,
|
||||
String authType)
|
||||
{
|
||||
// Only process requests for the "Basic" authentication scheme
|
||||
if (authType.ToUpper() == "BASIC")
|
||||
{
|
||||
|
||||
if (bMiCasaIsAvailable)
|
||||
{
|
||||
RemoveMiCasaCredential(uriPrefix.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if we already have credentials
|
||||
if (m_haveCredentials)
|
||||
{
|
||||
// Clear the credentials.
|
||||
m_password = null;
|
||||
m_haveCredentials = false;
|
||||
}
|
||||
|
||||
//
|
||||
// Lookup the credentials in the cache
|
||||
//
|
||||
// Synchronize access into the cache
|
||||
lock (m_userCaches)
|
||||
{
|
||||
// Look for the user's cache
|
||||
int i;
|
||||
for (i = 0; i < m_userCaches.Length; i++)
|
||||
{
|
||||
// Check if the user cache has been instantiated
|
||||
if (m_userCaches[i] != null)
|
||||
{
|
||||
if (m_userCaches[i].m_userName == m_userName)
|
||||
{
|
||||
// We found a cache for this user, remove the credentials.
|
||||
m_userCaches[i].m_credentialCache.Remove(new Uri("http://" + m_credScope, true), "Basic");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Dbg.trcError("NetCredential.GetCredential- Unsupported authentication scheme");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Obtains the network credentials necessary to gain access to the resources associated
|
||||
/// with the specified uri prefix.
|
||||
/// </summary>
|
||||
/// <param name="uriPrefix">Uri that specifies the URI prefix of resources that the credential grant access to</param>
|
||||
/// <param name="authType">The authentication scheme used by the resource</param>
|
||||
/// <returns>NetworkCredential object or null if not successful</returns>
|
||||
public NetworkCredential GetCredential(Uri uriPrefix,
|
||||
String authType)
|
||||
{
|
||||
NetworkCredential cred = null;
|
||||
|
||||
// Only process requests for the "Basic" authentication scheme
|
||||
if (authType.ToUpper() == "BASIC")
|
||||
{
|
||||
|
||||
if (bMiCasaIsAvailable)
|
||||
{
|
||||
return GetMiCasaCredential(m_svcName, m_svcGroupName);
|
||||
}
|
||||
|
||||
// Check if we already have credentials
|
||||
if (m_haveCredentials)
|
||||
{
|
||||
// Create NetworkCredential object with the credentials that we have.
|
||||
cred = new NetworkCredential(m_userName, m_password);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Lookup the credentials in the cache
|
||||
//
|
||||
// Synchronize access into the cache
|
||||
lock (m_userCaches)
|
||||
{
|
||||
// Look for the user's cache
|
||||
int i;
|
||||
for (i = 0; i < m_userCaches.Length; i++)
|
||||
{
|
||||
// Check if the user cache has been instantiated
|
||||
if (m_userCaches[i] != null)
|
||||
{
|
||||
if (m_userCaches[i].m_userName == m_userName)
|
||||
{
|
||||
// We found a cache for this user, check if we already have the
|
||||
// necessary credentials.
|
||||
cred = m_userCaches[i].m_credentialCache.GetCredential(new Uri("http://" + m_credScope, true), "Basic");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Dbg.trcError("NetCredential.GetCredential- Unsuported authentication scheme");
|
||||
}
|
||||
|
||||
return cred;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the credential cache with the supplied credentials.
|
||||
/// </summary>
|
||||
/// <param name="userName">Name of the user.</param>
|
||||
/// <param name="password">User password.</param>
|
||||
/// <param name="credScope">Credential scope.</param>
|
||||
private void UpdateCredentialCache(string userName, string password, string credScope)
|
||||
{
|
||||
// Check if we already have a cache for the user
|
||||
lock (m_userCaches)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < m_userCaches.Length; i++)
|
||||
{
|
||||
// Check if the user cache has been instantiated
|
||||
if (m_userCaches[i] != null)
|
||||
{
|
||||
if (m_userCaches[i].m_userName == userName)
|
||||
{
|
||||
// A user cache has already been instantiated, check if
|
||||
// we already have a cache entry.
|
||||
if (m_userCaches[i].m_credentialCache.GetCredential(new Uri("http://" + credScope, true), "Basic") != null)
|
||||
{
|
||||
// We have a cache entry, remove it.
|
||||
m_userCaches[i].m_credentialCache.Remove(new Uri("http://" + credScope, true), "Basic");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Instantiate user cache and use it
|
||||
m_userCaches[i] = new UserCache();
|
||||
|
||||
// Setup user cache
|
||||
m_userCaches[i].m_userName = userName;
|
||||
m_userCaches[i].m_credentialCache = new CredentialCache();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Exit if we failed to obtain a user cache
|
||||
if (i == m_userCaches.Length)
|
||||
return;
|
||||
|
||||
// Create NetworkCredential object and add it to the credential cache
|
||||
NetworkCredential cred = new NetworkCredential(userName, password);
|
||||
m_userCaches[i].m_credentialCache.Add(new Uri("http://" + credScope, true), "Basic", cred);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// the following is micasa/secretstore code.
|
||||
private void UpdateMiCasaCredential(string sUsername, string sPassword, string sSecretID, string sSharedID)
|
||||
{
|
||||
|
||||
// call SetCredential through reflection
|
||||
Type type = assembly.GetType(MI_CASA_CLASS_NAME);
|
||||
object Instance = Activator.CreateInstance (type);
|
||||
|
||||
object[] arguments = new object[4];
|
||||
arguments[0] = sSecretID;
|
||||
arguments[1] = sSharedID;
|
||||
arguments[2] = sUsername;
|
||||
arguments[3] = sPassword;
|
||||
|
||||
object result;
|
||||
try
|
||||
{
|
||||
result = type.InvokeMember("SetBasicCredential", BindingFlags.InvokeMethod, null, Instance, arguments);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Dbg.trcError(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private NetworkCredential GetMiCasaCredential(string sSecretID, string sSharedID)
|
||||
{
|
||||
object oUsername;
|
||||
object oPassword;
|
||||
|
||||
Type type = assembly.GetType(MI_CASA_CLASS_NAME);
|
||||
object Instance = Activator.CreateInstance (type);
|
||||
|
||||
try
|
||||
{
|
||||
object[] arguments = new object[2];
|
||||
arguments[0] = sSecretID;
|
||||
arguments[1] = sSharedID;
|
||||
|
||||
// reflection call
|
||||
oUsername = type.InvokeMember("GetCredentialUsername", BindingFlags.InvokeMethod, null, Instance, arguments);
|
||||
oPassword = type.InvokeMember("GetCredentialPassword", BindingFlags.InvokeMethod, null, Instance, arguments);
|
||||
|
||||
if ((oUsername != null) & (oPassword != null))
|
||||
return new NetworkCredential(oUsername.ToString().Trim(), oPassword.ToString().Trim());
|
||||
|
||||
// invoke the GetUsername and GetPassword methods
|
||||
//object username = basicCred.InvokeMember("GetUsername", BindingFlags.InvokeMethod, null, result, null);
|
||||
//object password = basicCred.InvokeMember("GetPassword", BindingFlags.InvokeMethod, null, result, null);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Dbg.trcError(e.ToString());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void RemoveMiCasaCredential(string sSecretID)
|
||||
{
|
||||
Type type = assembly.GetType(MI_CASA_CLASS_NAME);
|
||||
object Instance = Activator.CreateInstance (type);
|
||||
|
||||
try
|
||||
{
|
||||
object[] arguments = new object[2];
|
||||
arguments[0] = sSecretID;
|
||||
arguments[1] = null;
|
||||
|
||||
// reflection call
|
||||
type.InvokeMember("RemoveBasicCredential", BindingFlags.InvokeMethod, null, Instance, arguments);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Dbg.trcError(e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
34
ClientPasswordManager/c-sharp-net-credential/README
Normal file
34
ClientPasswordManager/c-sharp-net-credential/README
Normal file
@@ -0,0 +1,34 @@
|
||||
/***********************************************************************
|
||||
* File: README
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
The c-sharp-net-credential component provides the class NetCredential
|
||||
which is an implementation of the ICredentials interface. Applications
|
||||
can use objects of this class to satisfy credential queries from classes
|
||||
such as the WebRequest class..
|
||||
|
||||
FEATURES
|
||||
|
||||
The c-sharp-net-credential class allows the user to set or retrieve
|
||||
password credentials from the credential cache provided by the SecretStore
|
||||
Client Service Wallet. The application can control how credentials are scoped
|
||||
in the credential store through the parameters utilized to instantiate
|
||||
NetCredential objects.
|
||||
@@ -0,0 +1,114 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = ""
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "Novell.Security.ClientPasswordManager.NetCredential"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Library"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "Novell.Security.ClientPasswordManager"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Windows.Forms"
|
||||
AssemblyName = "System.Windows.Forms"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "Novell.Security.Utilities"
|
||||
AssemblyName = "Novell.Security.Utilities"
|
||||
HintPath = "..\c-sharp-utilities\bin\Debug\Novell.Security.Utilities.dll"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "c-sharp-net-credential.snk"
|
||||
BuildAction = "None"
|
||||
/>
|
||||
<File
|
||||
RelPath = "NetCredential.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "C:\Documents and Settings\jluciani\My Documents\Visual Studio Projects\ClientPasswordManager\c-sharp-utilities\bin\Debug\;C:\Documents and Settings\jluciani\My Documents\Visual Studio Projects\ClientPasswordManager\c-sharp-username-dialog\bin\Debug\;C:\Documents and Settings\jluciani\My Documents\Visual Studio Projects\ClientPasswordManager\c-sharp-password-dialog\bin\Debug\;C:\Documents and Settings\jluciani\My Documents\Visual Studio Projects\ClientPasswordManager\c-sharp-utilities\bin\Release\;D:\ccm\SSClient\ClientPasswordManager\c-sharp-utilities\bin\Debug\;D:\ccm\SSClient\SecretStoreClient_src\ClientPasswordManager\c-sharp-utilities\bin\Debug\;D:\ccm\SSClient\SecretStoreClient_src\ClientPasswordManager\c-sharp-utilities\obj\Release\" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "true"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
Binary file not shown.
85
ClientPasswordManager/c-sharp-password-dialog/Makefile.am
Normal file
85
ClientPasswordManager/c-sharp-password-dialog/Makefile.am
Normal file
@@ -0,0 +1,85 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
if DEBUG
|
||||
TARGET_CFG = Debug
|
||||
else
|
||||
TARGET_CFG = Release
|
||||
endif
|
||||
|
||||
# handle Mono secondary dependencies
|
||||
export MONO_PATH := $(MONO_PATH)
|
||||
|
||||
if WINDOWS
|
||||
Module_CSFILES = $(srcdir)/passwordDialog.cs
|
||||
Module_LIBS = System.dll System.Data.dll $(SYSTEM_XML) Novell.Security.Utilities.dll
|
||||
Module_PKGS =
|
||||
else
|
||||
Module_CSFILES = $(srcdir)/passwordDialog-gtk.cs
|
||||
Module_LIBS = System.dll System.Data.dll System.Drawing $(SYSTEM_XML) Novell.Security.Utilities.dll
|
||||
Module_PKGS = -pkg:gtk-sharp
|
||||
endif
|
||||
|
||||
Module_KEYFILE = $(srcdir)/c-sharp-password-dialog.snk
|
||||
Module_CSFILES_CSC := $(subst /,$(SEP),$(Module_CSFILES))
|
||||
Module_INCLUDES =
|
||||
Module_RESOURCES =
|
||||
Module_FLAGS = $(CSC_LIBFLAG)
|
||||
Module_LIBPATH = ../c-sharp-utilities/bin/$(TARGET_CFG)
|
||||
|
||||
EXTRA_DIST = $(Module_CSFILES) $(Module_KEYFILE)
|
||||
|
||||
CUR_DIR := $(shell pwd)
|
||||
|
||||
all: Novell.Security.ClientPasswordManager.PasswordDialog.dll
|
||||
|
||||
Novell.Security.ClientPasswordManager.PasswordDialog.dll: $(Module_CSFILES) $(Module_RESOURCES)
|
||||
$(mkinstalldirs) bin/$(TARGET_CFG)
|
||||
if WINDOWS
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) $(Module_PKGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.PasswordDialog.doc.xml
|
||||
else
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) /keyfile:$(Module_KEYFILE) $(Module_PKGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.PasswordDialog.doc.xml
|
||||
endif
|
||||
|
||||
install-exec-local: Novell.Security.ClientPasswordManager.PasswordDialog.dll
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
$(INSTALL_PROGRAM) bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.PasswordDialog.dll $(DESTDIR)$(libdir)/
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)$(libdir); rm -f Novell.Security.ClientPasswordManager.PasswordDialog.dll
|
||||
rmdir $(DESTDIR)$(libdir)
|
||||
|
||||
#installcheck-local: install
|
||||
# $(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
# $(INSTALL_PROGRAM) $(DESTDIR)$(libdir)
|
||||
# cd $(DESTDIR)$(libdir); $(MONO)
|
||||
|
||||
CLEAN_FILES = bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.PasswordDialog.dll /doc:Novell.Security.ClientPasswordManager.PasswordDialog.doc.xml
|
||||
|
||||
clean-local:
|
||||
rm -rf *.dbg *.exe *.dll $(CLEAN_FILES)
|
||||
|
||||
distclean-local:
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
28
ClientPasswordManager/c-sharp-password-dialog/README
Normal file
28
ClientPasswordManager/c-sharp-password-dialog/README
Normal file
@@ -0,0 +1,28 @@
|
||||
/***********************************************************************
|
||||
* File: README
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
The c-sharp-password-dialog provides a class (PasswordDialog) that can be used
|
||||
by .NET applications to query users for their password.
|
||||
|
||||
FEATURES
|
||||
|
||||
The PasswordDialog Class utilizes Windows Forms under Win32 and GTK# under Linux.
|
||||
@@ -0,0 +1,119 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{5A211C70-3AEB-4305-8CB6-42757D01DC22}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = ""
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "Novell.Security.ClientPasswordManager.PasswordDialog"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Library"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "Novell.Security.ClientPasswordManager"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Drawing"
|
||||
AssemblyName = "System.Drawing"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Windows.Forms"
|
||||
AssemblyName = "System.Windows.Forms"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "c-sharp-password-dialog.snk"
|
||||
BuildAction = "None"
|
||||
/>
|
||||
<File
|
||||
RelPath = "passwordDialog.cs"
|
||||
SubType = "Form"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "passwordDialog.resx"
|
||||
DependentUpon = "passwordDialog.cs"
|
||||
BuildAction = "EmbeddedResource"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,183 @@
|
||||
/***********************************************************************
|
||||
* File: passwordDialog-gtk.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
*
|
||||
* Namespace: Novell.Security.ClientPasswordManager
|
||||
*
|
||||
* Classes implemented: PasswordDialog.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Text.RegularExpressions;
|
||||
using Gtk;
|
||||
|
||||
namespace Novell.Security.ClientPasswordManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Class implements user name dialog leveraging Gtk#.
|
||||
/// </summary>
|
||||
sealed public class passwordDialog : Dialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
private Entry m_passwordEntry;
|
||||
private Button m_okButton;
|
||||
private Button m_cancelButton;
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_passwordLabelText = "Password:";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="title">Title to use for the dialog.</param>
|
||||
public passwordDialog(string title) : base()
|
||||
{
|
||||
this.Title = title;
|
||||
this.HasSeparator = false;
|
||||
this.Resizable = false;
|
||||
this.Modal = true;
|
||||
|
||||
HBox h = new HBox();
|
||||
h.BorderWidth = 12;
|
||||
h.Spacing = 6;
|
||||
|
||||
Label l = new Label(m_passwordLabelText);
|
||||
l.Xalign = 0;
|
||||
h.PackStart(l, false, false, 0);
|
||||
|
||||
m_passwordEntry = new Entry();
|
||||
m_passwordEntry.ActivatesDefault = true;
|
||||
m_passwordEntry.Visibility = false;
|
||||
h.PackStart(m_passwordEntry, true, true, 0);
|
||||
|
||||
h.ShowAll();
|
||||
this.VBox.Add(h);
|
||||
|
||||
m_okButton = new Button(Stock.Ok);
|
||||
m_okButton.CanDefault = true;
|
||||
this.AddActionWidget(m_okButton, ResponseType.Ok);
|
||||
|
||||
m_cancelButton = new Button(Stock.Cancel);
|
||||
this.AddActionWidget(m_cancelButton, ResponseType.Cancel);
|
||||
|
||||
this.DefaultResponse = ResponseType.Ok;
|
||||
this.ShowAll();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="parent">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(Window parent)
|
||||
{
|
||||
// Set focus on the entry widget, display the dialog, and
|
||||
// hide it once it is answered.
|
||||
this.Focus = m_passwordEntry;
|
||||
this.TransientFor = parent;
|
||||
ResponseType resp = (ResponseType) this.Run();
|
||||
this.Hide();
|
||||
|
||||
// Proceed based on the dialog response value
|
||||
if (resp == ResponseType.Ok)
|
||||
{
|
||||
// The user provided the necessary input
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// The user either hit the cancel button or closed
|
||||
// the window.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the password entered by the user.
|
||||
/// </summary>
|
||||
/// <returns>NetworkCredential object or null if not successful</returns>
|
||||
public System.String password { get {return m_passwordEntry.Text;}}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class wrapper around the passwordDialog class. This wrapper is utilized
|
||||
/// to hide the use of Gtk# from its users.
|
||||
/// </summary>
|
||||
public class PasswordDialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
passwordDialog m_dialog;
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_titleStartText = "Login to ";
|
||||
private static string m_titleRealmText = ", Realm: ";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring password.</param>
|
||||
public PasswordDialog(string svcName)
|
||||
{
|
||||
// Instantiate the dialog with the appropriate title
|
||||
m_dialog = new passwordDialog(m_titleStartText + svcName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring password.</param>
|
||||
/// <param name="realm">Name of realm to which the service belongs, can be empty string or null.</param>
|
||||
public PasswordDialog(string svcName, string realm)
|
||||
{
|
||||
// Instantiate the dialog with the appropriate title
|
||||
if (realm != null && realm.Length != 0)
|
||||
{
|
||||
m_dialog = new passwordDialog(m_titleStartText + svcName + m_titleRealmText + realm);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dialog = new passwordDialog(m_titleStartText + svcName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="o">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(System.Object o)
|
||||
{
|
||||
return m_dialog.Invoke((Window) o);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the password entered by the user.
|
||||
/// </summary>
|
||||
public System.String password { get {return m_dialog.password;}}
|
||||
}
|
||||
}
|
||||
266
ClientPasswordManager/c-sharp-password-dialog/passwordDialog.cs
Normal file
266
ClientPasswordManager/c-sharp-password-dialog/passwordDialog.cs
Normal file
@@ -0,0 +1,266 @@
|
||||
/***********************************************************************
|
||||
* File: passwordDialog.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
*
|
||||
* Namespace: Novell.Security.ClientPasswordManager
|
||||
*
|
||||
* Classes implemented: PasswordDialog.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Novell.Security.ClientPasswordManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides a dialog for the acquisition of passwords.
|
||||
/// </summary>
|
||||
public class passwordDialog : System.Windows.Forms.Form
|
||||
{
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox passwordField;
|
||||
private System.Windows.Forms.Button okBtn;
|
||||
private System.Windows.Forms.Button cancelBtn;
|
||||
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="title">Title to used with dialog.</param>
|
||||
public passwordDialog(string title)
|
||||
{
|
||||
// Required for Windows Form Designer support
|
||||
InitializeComponent();
|
||||
|
||||
// Update the form title
|
||||
Text = title;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.passwordField = new System.Windows.Forms.TextBox();
|
||||
this.okBtn = new System.Windows.Forms.Button();
|
||||
this.cancelBtn = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.label1.Location = new System.Drawing.Point(16, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(56, 16);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Password:";
|
||||
//
|
||||
// passwordField
|
||||
//
|
||||
this.passwordField.AcceptsReturn = true;
|
||||
this.passwordField.Location = new System.Drawing.Point(96, 24);
|
||||
this.passwordField.MaxLength = 64;
|
||||
this.passwordField.Name = "passwordField";
|
||||
this.passwordField.PasswordChar = '*';
|
||||
this.passwordField.Size = new System.Drawing.Size(224, 20);
|
||||
this.passwordField.TabIndex = 5;
|
||||
this.passwordField.Text = "";
|
||||
//
|
||||
// okBtn
|
||||
//
|
||||
this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.okBtn.Location = new System.Drawing.Point(152, 64);
|
||||
this.okBtn.Name = "okBtn";
|
||||
this.okBtn.TabIndex = 7;
|
||||
this.okBtn.Text = "Ok";
|
||||
this.okBtn.Click += new System.EventHandler(this.okBtn_Click);
|
||||
//
|
||||
// cancelBtn
|
||||
//
|
||||
this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.cancelBtn.Location = new System.Drawing.Point(240, 64);
|
||||
this.cancelBtn.Name = "cancelBtn";
|
||||
this.cancelBtn.TabIndex = 8;
|
||||
this.cancelBtn.Text = "Cancel";
|
||||
//
|
||||
// passwordDialog
|
||||
//
|
||||
this.AcceptButton = this.okBtn;
|
||||
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
||||
this.CancelButton = this.cancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(338, 96);
|
||||
this.Controls.Add(this.cancelBtn);
|
||||
this.Controls.Add(this.okBtn);
|
||||
this.Controls.Add(this.passwordField);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "passwordDialog";
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Load += new System.EventHandler(this.passwordDialog_Load);
|
||||
this.Activated += new System.EventHandler(this.passwordDialog_Activated);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Handler for form activation event.
|
||||
/// </summary>
|
||||
private void passwordDialog_Activated(object sender, System.EventArgs e)
|
||||
{
|
||||
passwordField.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handler for Ok button click event.
|
||||
/// </summary>
|
||||
private void okBtn_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
// Dispose of the dialog and set DialogResult to OK
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void passwordDialog_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the password entered by the user.
|
||||
/// </summary>
|
||||
public System.String password { get {return passwordField.Text;}}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class wrapper around the passwordDialog class. This wrapper is utilized
|
||||
/// to hide the use of Gtk# from its users.
|
||||
/// </summary>
|
||||
public class PasswordDialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_titleStartText = "Login to ";
|
||||
private static string m_titleRealmText = ", Realm: ";
|
||||
|
||||
// Title that will be used with the dialog
|
||||
private string m_dialogTitle;
|
||||
|
||||
// Input gathered from the user
|
||||
private string m_password;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring password.</param>
|
||||
public PasswordDialog(string svcName)
|
||||
{
|
||||
// Setup the title that will be used with the dialog
|
||||
m_dialogTitle = m_titleStartText + svcName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring password.</param>
|
||||
/// <param name="realm">Name of realm to which the service belongs, can be empty string or null.</param>
|
||||
public PasswordDialog(string svcName, string realm)
|
||||
{
|
||||
// Setup the appropriate title that will be used with the dialog
|
||||
if (realm != null && realm.Length != 0)
|
||||
{
|
||||
m_dialogTitle = m_titleStartText + svcName + m_titleRealmText + realm;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dialogTitle = m_titleStartText + svcName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="o">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(System.Object o)
|
||||
{
|
||||
bool retVal;
|
||||
|
||||
// Instantiate and show passwordDialog
|
||||
passwordDialog dialog = new passwordDialog(m_dialogTitle);
|
||||
if (dialog.ShowDialog((IWin32Window) o) == DialogResult.OK)
|
||||
{
|
||||
// Save the password entered
|
||||
m_password = dialog.password;
|
||||
|
||||
// Indicate success
|
||||
retVal = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// The user either hit the cancel button or closed
|
||||
// the window.
|
||||
retVal = false;
|
||||
}
|
||||
|
||||
// Dispose of the dialog
|
||||
dialog.Dispose();
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the password entered by the user.
|
||||
/// </summary>
|
||||
public System.String password { get {return m_password;}}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 1.3
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">1.3</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1">this is my long string</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
[base64 mime encoded serialized .NET Framework object]
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used forserialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="passwordField.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="passwordField.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="passwordField.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="okBtn.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="okBtn.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="okBtn.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="cancelBtn.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cancelBtn.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="cancelBtn.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>(Default)</value>
|
||||
</data>
|
||||
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.Name">
|
||||
<value>passwordDialog</value>
|
||||
</data>
|
||||
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,58 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly: AssemblyTitle("Novell.Security.ClientPasswordManager ")]
|
||||
[assembly: AssemblyDescription("Implements the usernameDialog class for Novell.Security.ClientPasswordManager")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Novell, Inc.")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("Copyright (C) 2004 Novell, Inc.")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
// Microsoft .NET Framework documentation for more information on assembly signing.
|
||||
//
|
||||
// Use the attributes below to control which key is used for signing.
|
||||
//
|
||||
// Notes:
|
||||
// (*) If no key is specified, the assembly is not signed.
|
||||
// (*) KeyName refers to a key that has been installed in the Crypto Service
|
||||
// Provider (CSP) on your machine. KeyFile refers to a file which contains
|
||||
// a key.
|
||||
// (*) If the KeyFile and the KeyName values are both specified, the
|
||||
// following processing occurs:
|
||||
// (1) If the KeyName can be found in the CSP, that key is used.
|
||||
// (2) If the KeyName does not exist and the KeyFile does exist, the key
|
||||
// in the KeyFile is installed into the CSP and used.
|
||||
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
|
||||
// When specifying the KeyFile, the location of the KeyFile should be
|
||||
// relative to the project output directory which is
|
||||
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
|
||||
// located in the project directory, you would specify the AssemblyKeyFile
|
||||
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
|
||||
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
|
||||
// documentation for more information on this.
|
||||
//
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("..\\..\\c-sharp-username-dialog.snk")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
85
ClientPasswordManager/c-sharp-username-dialog/Makefile.am
Normal file
85
ClientPasswordManager/c-sharp-username-dialog/Makefile.am
Normal file
@@ -0,0 +1,85 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
if DEBUG
|
||||
TARGET_CFG = Debug
|
||||
else
|
||||
TARGET_CFG = Release
|
||||
endif
|
||||
|
||||
# handle Mono secondary dependencies
|
||||
export MONO_PATH := $(MONO_PATH)
|
||||
|
||||
if WINDOWS
|
||||
Module_CSFILES = $(srcdir)/usernameDialog.cs
|
||||
Module_LIBS = System.dll System.Data.dll $(SYSTEM_XML) Novell.Security.Utilities.dll
|
||||
Module_PKGS =
|
||||
else
|
||||
Module_CSFILES = $(srcdir)/usernameDialog-gtk.cs
|
||||
Module_LIBS = System.dll System.Data.dll System.Drawing $(SYSTEM_XML) Novell.Security.Utilities.dll
|
||||
Module_PKGS = -pkg:gtk-sharp
|
||||
endif
|
||||
|
||||
Module_KEYFILE = $(srcdir)/c-sharp-username-dialog.snk
|
||||
Module_CSFILES_CSC := $(subst /,$(SEP),$(Module_CSFILES))
|
||||
Module_INCLUDES =
|
||||
Module_RESOURCES =
|
||||
Module_FLAGS = $(CSC_LIBFLAG)
|
||||
Module_LIBPATH = ../c-sharp-utilities/bin/$(TARGET_CFG)
|
||||
|
||||
EXTRA_DIST = $(Module_CSFILES) $(Module_KEYFILE)
|
||||
|
||||
CUR_DIR := $(shell pwd)
|
||||
|
||||
all: Novell.Security.ClientPasswordManager.UsernameDialog.dll
|
||||
|
||||
Novell.Security.ClientPasswordManager.UsernameDialog.dll: $(Module_CSFILES) $(Module_RESOURCES)
|
||||
$(mkinstalldirs) bin/$(TARGET_CFG)
|
||||
if WINDOWS
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) $(Module_PKGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.UsernameDialog.doc.xml
|
||||
else
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) /keyfile:$(Module_KEYFILE) $(Module_PKGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.ClientPasswordManager.UsernameDialog.doc.xml
|
||||
endif
|
||||
|
||||
install-exec-local: Novell.Security.ClientPasswordManager.UsernameDialog.dll
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
$(INSTALL_PROGRAM) bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.UsernameDialog.dll $(DESTDIR)$(libdir)/
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)$(libdir); rm -f Novell.Security.ClientPasswordManager.UsernameDialog.dll
|
||||
rmdir $(DESTDIR)$(libdir)
|
||||
|
||||
#installcheck-local: install
|
||||
# $(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
# $(INSTALL_PROGRAM) $(DESTDIR)$(libdir)
|
||||
# cd $(DESTDIR)$(libdir); $(MONO)
|
||||
|
||||
CLEAN_FILES = bin/$(TARGET_CFG)/Novell.Security.ClientPasswordManager.UsernameDialog.dll /doc:Novell.Security.ClientPasswordManager.UsernameDialog.doc.xml
|
||||
|
||||
clean-local:
|
||||
rm -rf *.dbg *.exe *.dll $(CLEAN_FILES)
|
||||
|
||||
distclean-local:
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
28
ClientPasswordManager/c-sharp-username-dialog/README
Normal file
28
ClientPasswordManager/c-sharp-username-dialog/README
Normal file
@@ -0,0 +1,28 @@
|
||||
/***********************************************************************
|
||||
* File: README
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
The c-sharp-username-dialog provides a class (UsernameDialog) that can be used
|
||||
by .NET applications to query users for their user name.
|
||||
|
||||
FEATURES
|
||||
|
||||
The UsernameDialog Class utilizes Windows Forms under Win32 and GTK# under Linux.
|
||||
@@ -0,0 +1,119 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = ""
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "Novell.Security.ClientPasswordManager.UsernameDialog"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Library"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "Novell.Security.ClientPasswordManager"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Drawing"
|
||||
AssemblyName = "System.Drawing"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Windows.Forms"
|
||||
AssemblyName = "System.Windows.Forms"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "c-sharp-username-dialog.snk"
|
||||
BuildAction = "None"
|
||||
/>
|
||||
<File
|
||||
RelPath = "usernameDialog.cs"
|
||||
SubType = "Form"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "usernameDialog.resx"
|
||||
DependentUpon = "usernameDialog.cs"
|
||||
BuildAction = "EmbeddedResource"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,257 @@
|
||||
/***********************************************************************
|
||||
* File: usernameDialog-gtk.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
*
|
||||
* Namespace: Novell.Security.ClientPasswordManager
|
||||
*
|
||||
* Classes implemented: UsernameDialog.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Text.RegularExpressions;
|
||||
using Gtk;
|
||||
|
||||
namespace Novell.Security.ClientPasswordManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Class implements user name dialog leveraging Gtk#.
|
||||
/// </summary>
|
||||
sealed public class usernameDialog : Dialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
private Entry m_userNameEntry;
|
||||
private Button m_okButton;
|
||||
private Button m_cancelButton;
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_userNameLabelText = "User name:";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Class implements dialog to notify user that it needs to
|
||||
/// input the user name.
|
||||
/// </summary>
|
||||
private class inputRequiredDialog: Dialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_inputRequiredLabelText = "User name required";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="title">Title to be used with the dialog.</param>
|
||||
public inputRequiredDialog(string title) : base()
|
||||
{
|
||||
this.Title = title;
|
||||
this.HasSeparator = false;
|
||||
this.Resizable = false;
|
||||
this.Modal = true;
|
||||
this.DefaultResponse = ResponseType.Ok;
|
||||
|
||||
HBox h = new HBox();
|
||||
h.BorderWidth = 12;
|
||||
h.Spacing = 6;
|
||||
|
||||
Gtk.Image i = new Gtk.Image();
|
||||
i.SetFromStock(Stock.DialogError, IconSize.Dialog);
|
||||
i.SetAlignment(0.5F, 0);
|
||||
h.PackStart(i, false, false, 0);
|
||||
|
||||
Label l = new Label("<span weight=\"bold\" size=\"larger\">"
|
||||
+ m_inputRequiredLabelText
|
||||
+ "</span>");
|
||||
l.LineWrap = true;
|
||||
l.UseMarkup = true;
|
||||
l.Selectable = false;
|
||||
l.Xalign = 0;
|
||||
l.Yalign = 0;
|
||||
h.PackStart(l, false, false, 0);
|
||||
|
||||
h.ShowAll();
|
||||
this.VBox.Add(h);
|
||||
|
||||
this.AddButton(Stock.Ok, ResponseType.Ok);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="title">Title to use for the dialog.</param>
|
||||
public usernameDialog(string title) : base()
|
||||
{
|
||||
this.Title = title;
|
||||
this.HasSeparator = false;
|
||||
this.Resizable = false;
|
||||
this.Modal = true;
|
||||
|
||||
HBox h = new HBox();
|
||||
h.BorderWidth = 12;
|
||||
h.Spacing = 6;
|
||||
|
||||
Label l = new Label(m_userNameLabelText);
|
||||
l.Xalign = 0;
|
||||
h.PackStart(l, false, false, 0);
|
||||
|
||||
m_userNameEntry = new Entry();
|
||||
m_userNameEntry.ActivatesDefault = true;
|
||||
h.PackStart(m_userNameEntry, true, true, 0);
|
||||
|
||||
h.ShowAll();
|
||||
this.VBox.Add(h);
|
||||
|
||||
m_okButton = new Button(Stock.Ok);
|
||||
m_okButton.CanDefault = true;
|
||||
this.AddActionWidget(m_okButton, ResponseType.Ok);
|
||||
|
||||
m_cancelButton = new Button(Stock.Cancel);
|
||||
this.AddActionWidget(m_cancelButton, ResponseType.Cancel);
|
||||
|
||||
this.DefaultResponse = ResponseType.Ok;
|
||||
this.ShowAll();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="parent">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(Window parent)
|
||||
{
|
||||
bool retVal;
|
||||
|
||||
while (true)
|
||||
{
|
||||
// Set focus on the entry widget, display the dialog, and
|
||||
// hide it once it is answered.
|
||||
this.Focus = m_userNameEntry;
|
||||
this.TransientFor = parent;
|
||||
ResponseType resp = (ResponseType) this.Run();
|
||||
this.Hide();
|
||||
|
||||
// Proceed based on the dialog response value
|
||||
if (resp == ResponseType.Ok)
|
||||
{
|
||||
// Verify that the user entered the desired information
|
||||
if (m_userNameEntry.Text.Length != 0)
|
||||
{
|
||||
// The user name was entered, indicate success and
|
||||
// get ready to exit.
|
||||
retVal = true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Inform the user that it must enter a name
|
||||
inputRequiredDialog errorDialog = new inputRequiredDialog(Title);
|
||||
errorDialog.Run();
|
||||
errorDialog.Hide();
|
||||
|
||||
// Show the user name dialog again
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// The user either hit the cancel button or closed
|
||||
// the window.
|
||||
retVal = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name entered by the user.
|
||||
/// </summary>
|
||||
/// <returns>NetworkCredential object or null if not successful</returns>
|
||||
public System.String userName { get {return m_userNameEntry.Text;}}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class wrapper around the usernameDialog class. This wrapper is utilized
|
||||
/// to hide the use of Gtk# from its users.
|
||||
/// </summary>
|
||||
public class UsernameDialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
usernameDialog m_dialog;
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_titleStartText = "Login to ";
|
||||
private static string m_titleRealmText = ", Realm: ";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring user name.</param>
|
||||
public UsernameDialog(string svcName)
|
||||
{
|
||||
// Instantiate the dialog with the appropriate title
|
||||
m_dialog = new usernameDialog(m_titleStartText + svcName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring user name.</param>
|
||||
/// <param name="realm">Name of realm to which the service belongs, can be empty string or null.</param>
|
||||
public UsernameDialog(string svcName, string realm)
|
||||
{
|
||||
// Instantiate the dialog with the appropriate title
|
||||
if (realm != null && realm.Length != 0)
|
||||
{
|
||||
m_dialog = new usernameDialog(m_titleStartText + svcName + m_titleRealmText + realm);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dialog = new usernameDialog(m_titleStartText + svcName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="o">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(System.Object o)
|
||||
{
|
||||
return m_dialog.Invoke((Window) o);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name entered by the user.
|
||||
/// </summary>
|
||||
public System.String userName { get {return m_dialog.userName;}}
|
||||
}
|
||||
}
|
||||
291
ClientPasswordManager/c-sharp-username-dialog/usernameDialog.cs
Normal file
291
ClientPasswordManager/c-sharp-username-dialog/usernameDialog.cs
Normal file
@@ -0,0 +1,291 @@
|
||||
/***********************************************************************
|
||||
* File: usernameDialog.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
*
|
||||
* Namespace: Novell.Security.ClientPasswordManager
|
||||
*
|
||||
* Classes implemented: UsernameDialog.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Novell.Security.ClientPasswordManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides a dialog for the acquisition of user names.
|
||||
/// </summary>
|
||||
sealed public class usernameDialog : System.Windows.Forms.Form
|
||||
{
|
||||
private System.Windows.Forms.TextBox usernameField;
|
||||
private System.Windows.Forms.Button okBtn;
|
||||
private System.Windows.Forms.Button cancelBtn;
|
||||
private System.Windows.Forms.Label label1;
|
||||
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="title">Title to use with dialog.</param>
|
||||
public usernameDialog(string title)
|
||||
{
|
||||
// Required for Windows Form Designer support
|
||||
InitializeComponent();
|
||||
|
||||
// Update the form title
|
||||
Text = title;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.usernameField = new System.Windows.Forms.TextBox();
|
||||
this.okBtn = new System.Windows.Forms.Button();
|
||||
this.cancelBtn = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// usernameField
|
||||
//
|
||||
this.usernameField.AcceptsReturn = true;
|
||||
this.usernameField.Location = new System.Drawing.Point(96, 24);
|
||||
this.usernameField.MaxLength = 64;
|
||||
this.usernameField.Name = "usernameField";
|
||||
this.usernameField.Size = new System.Drawing.Size(224, 20);
|
||||
this.usernameField.TabIndex = 5;
|
||||
this.usernameField.Text = "";
|
||||
//
|
||||
// okBtn
|
||||
//
|
||||
this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.okBtn.Location = new System.Drawing.Point(152, 64);
|
||||
this.okBtn.Name = "okBtn";
|
||||
this.okBtn.TabIndex = 7;
|
||||
this.okBtn.Text = "Ok";
|
||||
this.okBtn.Click += new System.EventHandler(this.okBtn_Click);
|
||||
//
|
||||
// cancelBtn
|
||||
//
|
||||
this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.cancelBtn.Location = new System.Drawing.Point(240, 64);
|
||||
this.cancelBtn.Name = "cancelBtn";
|
||||
this.cancelBtn.TabIndex = 8;
|
||||
this.cancelBtn.Text = "Cancel";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Location = new System.Drawing.Point(8, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(72, 16);
|
||||
this.label1.TabIndex = 9;
|
||||
this.label1.Text = "User name:";
|
||||
//
|
||||
// usernameDialog
|
||||
//
|
||||
this.AcceptButton = this.okBtn;
|
||||
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
||||
this.CancelButton = this.cancelBtn;
|
||||
this.ClientSize = new System.Drawing.Size(338, 96);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.cancelBtn);
|
||||
this.Controls.Add(this.okBtn);
|
||||
this.Controls.Add(this.usernameField);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "usernameDialog";
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Load += new System.EventHandler(this.usernameDialog_Load);
|
||||
this.Activated += new System.EventHandler(this.usernameDialog_Activated);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Handler for form activation event.
|
||||
/// </summary>
|
||||
private void usernameDialog_Activated(object sender, System.EventArgs e)
|
||||
{
|
||||
usernameField.Focus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handler for Ok button click event.
|
||||
/// </summary>
|
||||
private void okBtn_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
// Dispose of the dialog and set DialogResult to OK
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void usernameDialog_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the username entered by the user.
|
||||
/// </summary>
|
||||
public System.String userName { get {return usernameField.Text;}}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class wrapper around the usernameDialog class. This wrapper is utilized
|
||||
/// to hide the use of Gtk# from its users.
|
||||
/// </summary>
|
||||
public class UsernameDialog
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
// The following strings need to be localized
|
||||
private static string m_titleStartText = "Login to ";
|
||||
private static string m_titleRealmText = ", Realm: ";
|
||||
private static string m_inputRequiredLabelText = "User name required";
|
||||
|
||||
// Title that will be used with the dialog
|
||||
private string m_dialogTitle;
|
||||
|
||||
// Input gathered from the user
|
||||
private string m_userName;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring user name.</param>
|
||||
public UsernameDialog(string svcName)
|
||||
{
|
||||
// Setup the title that will be used with the dialog
|
||||
m_dialogTitle = m_titleStartText + svcName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="svcName">Name of service on whose behalf we are acquiring user name.</param>
|
||||
/// <param name="realm">Name of realm to which the service belongs, can be empty string or null.</param>
|
||||
public UsernameDialog(string svcName, string realm)
|
||||
{
|
||||
// Setup the appropriate title that will be used with the dialog
|
||||
if (realm != null && realm.Length != 0)
|
||||
{
|
||||
m_dialogTitle = m_titleStartText + svcName + m_titleRealmText + realm;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dialogTitle = m_titleStartText + svcName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the dialog and gathers the user input.
|
||||
/// </summary>
|
||||
/// <param name="o">Window owner.</param>
|
||||
/// <returns>True if the user input was gathered, else false.</returns>
|
||||
public bool Invoke(System.Object o)
|
||||
{
|
||||
bool retVal;
|
||||
|
||||
while (true)
|
||||
{
|
||||
// Instantiate and show usernameDialog
|
||||
usernameDialog dialog = new usernameDialog(m_dialogTitle);
|
||||
if (dialog.ShowDialog((IWin32Window) o) == DialogResult.OK)
|
||||
{
|
||||
// Save the user name entered
|
||||
m_userName = dialog.userName;
|
||||
|
||||
// Verify that the user entered the desired information
|
||||
if (m_userName.Length != 0)
|
||||
{
|
||||
// The user name was entered, indicate success and
|
||||
// get ready to exit.
|
||||
retVal = true;
|
||||
|
||||
// Dispose of the dialog and exit the loop
|
||||
dialog.Dispose();
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Inform the user that it must enter a name
|
||||
MessageBox.Show((IWin32Window) o,
|
||||
m_inputRequiredLabelText,
|
||||
"",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error);
|
||||
|
||||
// Dispose of the dialog and continue to prompt the user
|
||||
dialog.Dispose();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// The user either hit the cancel button or closed
|
||||
// the window.
|
||||
retVal = false;
|
||||
|
||||
// Dispose of the dialog and exit the loop
|
||||
dialog.Dispose();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name entered by the user.
|
||||
/// </summary>
|
||||
public System.String userName { get {return m_userName;}}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 1.3
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">1.3</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1">this is my long string</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
[base64 mime encoded serialized .NET Framework object]
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used forserialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="usernameField.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="usernameField.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="usernameField.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="okBtn.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="okBtn.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="okBtn.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="cancelBtn.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cancelBtn.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="cancelBtn.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="$this.Name">
|
||||
<value>usernameDialog</value>
|
||||
</data>
|
||||
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>(Default)</value>
|
||||
</data>
|
||||
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
</root>
|
||||
58
ClientPasswordManager/c-sharp-utilities/AssemblyInfo.cs
Normal file
58
ClientPasswordManager/c-sharp-utilities/AssemblyInfo.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly: AssemblyTitle("Novell.Security Utilities")]
|
||||
[assembly: AssemblyDescription("Implements the Dbg class for Novell.Security")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Novell, Inc.")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("Copyright (C) 2004 Novell, Inc.")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
// Microsoft .NET Framework documentation for more information on assembly signing.
|
||||
//
|
||||
// Use the attributes below to control which key is used for signing.
|
||||
//
|
||||
// Notes:
|
||||
// (*) If no key is specified, the assembly is not signed.
|
||||
// (*) KeyName refers to a key that has been installed in the Crypto Service
|
||||
// Provider (CSP) on your machine. KeyFile refers to a file which contains
|
||||
// a key.
|
||||
// (*) If the KeyFile and the KeyName values are both specified, the
|
||||
// following processing occurs:
|
||||
// (1) If the KeyName can be found in the CSP, that key is used.
|
||||
// (2) If the KeyName does not exist and the KeyFile does exist, the key
|
||||
// in the KeyFile is installed into the CSP and used.
|
||||
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
|
||||
// When specifying the KeyFile, the location of the KeyFile should be
|
||||
// relative to the project output directory which is
|
||||
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
|
||||
// located in the project directory, you would specify the AssemblyKeyFile
|
||||
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
|
||||
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
|
||||
// documentation for more information on this.
|
||||
//
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("..\\..\\c-sharp-utilities.snk")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
81
ClientPasswordManager/c-sharp-utilities/Debug.cs
Normal file
81
ClientPasswordManager/c-sharp-utilities/Debug.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
/***********************************************************************
|
||||
* File: Debug.cs
|
||||
* Author: Juan Carlos Luciani (jluciani@novell.com)
|
||||
* Date of Creation: February 2004.
|
||||
*
|
||||
* Namespace: Novell.Security.Utilities
|
||||
*
|
||||
* Classes implemented: Dbg.
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Novell.Security
|
||||
{
|
||||
/// <summary>
|
||||
/// Implements methods for sending data to the debugger.
|
||||
/// </summary>
|
||||
public class Dbg
|
||||
{
|
||||
#region Class Members and Defines
|
||||
|
||||
private static TraceSwitch m_switch = new TraceSwitch("Novell.Security", "Novell Security Components");
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Send data to the debugger if the trace level is set to error or above.
|
||||
/// </summary>
|
||||
/// <param name="line">Line to send to the debugger</param>
|
||||
static public void trcError(string line)
|
||||
{
|
||||
if (m_switch.TraceError)
|
||||
{
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
//Console.WriteLine(line);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send data to the debugger if the trace level is set to informational or above.
|
||||
/// </summary>
|
||||
/// <param name="line">Line to send to the debugger</param>
|
||||
static public void trcInfo(string line)
|
||||
{
|
||||
if (m_switch.TraceInfo)
|
||||
{
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
//Console.WriteLine(line);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send data to the debugger if the trace level is set to verbose.
|
||||
/// </summary>
|
||||
/// <param name="line">Line to send to the debugger</param>
|
||||
static public void trcVerbose(string line)
|
||||
{
|
||||
if (m_switch.TraceVerbose)
|
||||
{
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
//Console.WriteLine(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
77
ClientPasswordManager/c-sharp-utilities/Makefile.am
Normal file
77
ClientPasswordManager/c-sharp-utilities/Makefile.am
Normal file
@@ -0,0 +1,77 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
if DEBUG
|
||||
TARGET_CFG = Debug
|
||||
else
|
||||
TARGET_CFG = Release
|
||||
endif
|
||||
|
||||
# handle Mono secondary dependencies
|
||||
export MONO_PATH := $(MONO_PATH)
|
||||
|
||||
Module_CSFILES = $(srcdir)/Debug.cs
|
||||
Module_KEYFILE = $(srcdir)/c-sharp-utilities.snk
|
||||
Module_CSFILES_CSC := $(subst /,$(SEP),$(Module_CSFILES))
|
||||
Module_INCLUDES =
|
||||
Module_RESOURCES =
|
||||
Module_FLAGS = $(CSC_LIBFLAG)
|
||||
Module_LIBS = System.dll System.Data.dll System.Security.dll $(SYSTEM_XML)
|
||||
Module_LIBPATH =
|
||||
|
||||
EXTRA_DIST = $(Module_CSFILES) $(Module_KEYFILE)
|
||||
|
||||
CUR_DIR := $(shell pwd)
|
||||
|
||||
all: Novell.Security.Utilities.dll
|
||||
|
||||
Novell.Security.Utilities.dll: $(Module_CSFILES) $(Module_RESOURCES)
|
||||
$(mkinstalldirs) bin/$(TARGET_CFG)
|
||||
if WINDOWS
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.Utilities.doc.xml
|
||||
else
|
||||
$(CSC) /nowarn:1591,1573,1572 /out:bin/$(TARGET_CFG)/$@ $(CSCFLAGS) $(Module_FLAGS) /keyfile:$(Module_KEYFILE) $(Module_LIBS:%=/r:%) $(Module_LIBPATH:%=/lib:%) $(Module_CSFILES_CSC) /doc:Novell.Security.Utilities.doc.xml
|
||||
endif
|
||||
|
||||
install-exec-local: Novell.Security.Utilities.dll
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
$(INSTALL_PROGRAM) bin/$(TARGET_CFG)/Novell.Security.Utilities.dll $(DESTDIR)$(libdir)/
|
||||
|
||||
uninstall-local:
|
||||
cd $(DESTDIR)$(libdir); rm -f Novell.Security.Utilities.dll
|
||||
rmdir $(DESTDIR)$(libdir)
|
||||
|
||||
#installcheck-local: install
|
||||
# $(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
# $(INSTALL_PROGRAM) $(DESTDIR)$(libdir)
|
||||
# cd $(DESTDIR)$(libdir); $(MONO)
|
||||
|
||||
CLEAN_FILES = bin/$(TARGET_CFG)/Novell.Security.Utilities.dll /doc:Novell.Security.Utilities.doc.xml
|
||||
|
||||
clean-local:
|
||||
rm -rf *.dbg *.exe *.dll $(CLEAN_FILES)
|
||||
|
||||
distclean-local:
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
30
ClientPasswordManager/c-sharp-utilities/README
Normal file
30
ClientPasswordManager/c-sharp-utilities/README
Normal file
@@ -0,0 +1,30 @@
|
||||
/***********************************************************************
|
||||
* File: README
|
||||
*
|
||||
* Copyright (C) 2004 Novell, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
***********************************************************************/
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
The c-sharp-utilities component provides .NET facilities that are common to
|
||||
the ClientPasswordManager .NET components.
|
||||
|
||||
FEATURES
|
||||
|
||||
Provides the following utilities:
|
||||
|
||||
Dbg class that can be used for tracing debugging information.
|
||||
104
ClientPasswordManager/c-sharp-utilities/c-sharp-utilities.csproj
Normal file
104
ClientPasswordManager/c-sharp-utilities/c-sharp-utilities.csproj
Normal file
@@ -0,0 +1,104 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = ""
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "Novell.Security.Utilities"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Library"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "Novell.Security.Utilities"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "..\..\..\..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "c-sharp-utilities.snk"
|
||||
BuildAction = "None"
|
||||
/>
|
||||
<File
|
||||
RelPath = "Debug.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = ""
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
BIN
ClientPasswordManager/c-sharp-utilities/c-sharp-utilities.snk
Normal file
BIN
ClientPasswordManager/c-sharp-utilities/c-sharp-utilities.snk
Normal file
Binary file not shown.
204
ClientPasswordManager/configure.in
Normal file
204
ClientPasswordManager/configure.in
Normal file
@@ -0,0 +1,204 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
AC_INIT(c-sharp-net-credential/NetCredential.cs)
|
||||
AC_CANONICAL_SYSTEM
|
||||
AM_INIT_AUTOMAKE(clientpasswordmanager, 0.1.1)
|
||||
RELEASE=`date +%Y%m%d_%H%M`
|
||||
AC_SUBST(RELEASE)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
#
|
||||
# Check for a valid C# compiler
|
||||
#
|
||||
AC_CHECK_PROG(CSC, csc, csc)
|
||||
test -z "$CSC" && AC_CHECK_PROG(CSC, mcs, mcs)
|
||||
test -z "$CSC" && AC_MSG_ERROR([no acceptable C Sharp compiler found in \$PATH])
|
||||
|
||||
case $CSC in
|
||||
#
|
||||
# Mono-specific configuration
|
||||
#
|
||||
mcs)
|
||||
CSC_EXEFLAG=/target:exe
|
||||
CSC_LIBFLAG=/target:library
|
||||
CSC_EXEFLAG=/target:exe
|
||||
CSC_WINEXEFLAG=/target:winexe
|
||||
CSCFLAGS='/d:MONO /warn:4 /d:TRACE'
|
||||
CSCFLAGS_DEBUG="/debug+ /d:DEBUG"
|
||||
CSCFLAGS_OPTIMIZE="/optimize+"
|
||||
MONO=mono
|
||||
MONO_DEBUG='mono --debug'
|
||||
MONO_PATH=
|
||||
SYSTEM_XML='System.Xml.dll'
|
||||
;;
|
||||
#
|
||||
# .NET-specific configuration
|
||||
#
|
||||
csc)
|
||||
CSC_EXEFLAG=/target:exe
|
||||
CSC_LIBFLAG=/target:library
|
||||
CSC_EXEFLAG=/target:exe
|
||||
CSC_WINEXEFLAG=/target:winexe
|
||||
CSCFLAGS='/d:DOTNET /warn:4 /d:TRACE /nologo'
|
||||
CSCFLAGS_DEBUG="/debug+ /d:DEBUG"
|
||||
CSCFLAGS_OPTIMIZE="/optimize+"
|
||||
MONO=
|
||||
MONO_DEBUG=
|
||||
MONO_PATH=
|
||||
SYSTEM_XML='System.XML.dll'
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(CSC)
|
||||
AC_SUBST(CSC_EXEFLAG)
|
||||
AC_SUBST(CSC_LIBFLAG)
|
||||
AC_SUBST(CSC_WINEXEFLAG)
|
||||
AC_SUBST(CSCFLAGS)
|
||||
AC_SUBST(MONO)
|
||||
AC_SUBST(MONO_PATH)
|
||||
AC_SUBST(SYSTEM_XML)
|
||||
|
||||
SRCDIR='$(top_srcdir)'
|
||||
DOCDIR="$SRCDIR/doc"
|
||||
|
||||
AC_SUBST(SRCDIR)
|
||||
AC_SUBST(DOCDIR)
|
||||
|
||||
EMPTY=
|
||||
SPACE='$(EMPTY) $(EMPTY)'
|
||||
|
||||
AC_SUBST(EMPTY)
|
||||
AC_SUBST(SPACE)
|
||||
|
||||
#
|
||||
# Check for a valid operating system
|
||||
#
|
||||
case $host_os in
|
||||
linux*)
|
||||
TARGET_OS='linux'
|
||||
;;
|
||||
cygwin*)
|
||||
TARGET_OS='windows'
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown host_os: $host_os])
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(TARGET_OS)
|
||||
AM_CONDITIONAL(LINUX, test "$TARGET_OS" = "linux")
|
||||
AM_CONDITIONAL(WINDOWS, test "$TARGET_OS" = "windows")
|
||||
|
||||
#
|
||||
# Set platform-specific variables
|
||||
#
|
||||
case $TARGET_OS in
|
||||
#
|
||||
# Linux-specific configuration
|
||||
#
|
||||
linux)
|
||||
#
|
||||
# Set variables
|
||||
#
|
||||
COMMON_CLEAN_FILES=''
|
||||
ICON_EXT='.ico'
|
||||
ICON_FLAG='/resource:'
|
||||
PLATFORM_SUBDIRS=$LINUX_SUBDIRS
|
||||
SEP='/'
|
||||
;;
|
||||
#
|
||||
# Windows-specific configuration
|
||||
#
|
||||
windows)
|
||||
COMMON_CLEAN_FILES='*.suo */*.suo *.csproj.user */*.csproj.user bin obj */bin */obj *.xml */*.xml *.pdb */*.pdb'
|
||||
ICON_EXT='.ico'
|
||||
ICON_FLAG='/win32icon:'
|
||||
PLATFORM_SUBDIRS=$WINDOWS_SUBDIRS
|
||||
SEP='$(EMPTY)\\$(EMPTY)'
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(COMMON_CLEAN_FILES)
|
||||
AC_SUBST(ICON_EXT)
|
||||
AC_SUBST(ICON_FLAG)
|
||||
AC_SUBST(PLATFORM_SUBDIRS)
|
||||
AC_SUBST(SEP)
|
||||
|
||||
#
|
||||
# Run standard macros
|
||||
#
|
||||
AM_PROG_CC_STDC
|
||||
AC_PROG_INSTALL
|
||||
AC_HEADER_STDC
|
||||
|
||||
#
|
||||
# Handle --enable-debug
|
||||
#
|
||||
AC_ARG_ENABLE(debug, [
|
||||
--enable-debug configure the Makefiles to build in DEBUG mode],
|
||||
[case "${enableval}" in
|
||||
yes) enable_debug=true ;;
|
||||
no) enable_debug=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
|
||||
esac],[enable_debug=false])
|
||||
AM_CONDITIONAL(DEBUG, test x$enable_debug = xtrue)
|
||||
if test "$enable_debug" = "true"
|
||||
then
|
||||
# Build debug version.
|
||||
CFLAGS="$CFLAGS_DEBUG $CFLAGS"
|
||||
CSCFLAGS="$CSCFLAGS_DEBUG $CSCFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS_DEBUG $CXXFLAGS"
|
||||
DEVENV_CONFIGURATION=Debug
|
||||
MONO=$MONO_DEBUG
|
||||
else
|
||||
# Build optimized version.
|
||||
CFLAGS="$CFLAGS_OPTIMIZE $CFLAGS"
|
||||
CSCFLAGS="$CSCFLAGS_OPTIMIZE $CSCFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS_OPTIMIZE $CXXFLAGS"
|
||||
DEVENV_CONFIGURATION=Release
|
||||
fi
|
||||
AC_SUBST(CSCFLAGS)
|
||||
AC_SUBST(DEVENV_CONFIGURATION)
|
||||
|
||||
#
|
||||
# Configure PKG_CONFIG
|
||||
#
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
if test "x$PKG_CONFIG" = "xno"; then
|
||||
AC_MSG_ERROR([You need to install pkg-config])
|
||||
fi
|
||||
|
||||
#
|
||||
# Configure files
|
||||
#
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
c-sharp-net-credential/Makefile
|
||||
c-sharp-password-dialog/Makefile
|
||||
c-sharp-username-dialog/Makefile
|
||||
c-sharp-utilities/Makefile
|
||||
package/Makefile
|
||||
package/windows/Makefile
|
||||
package/windows/clientpasswordmanager-msm/Makefile
|
||||
package/linux/Makefile
|
||||
package/linux/clientpasswordmanager.spec
|
||||
])
|
||||
|
||||
|
||||
33
ClientPasswordManager/package/Makefile.am
Normal file
33
ClientPasswordManager/package/Makefile.am
Normal file
@@ -0,0 +1,33 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
SUBDIRS = $(TARGET_OS)
|
||||
|
||||
DIST_SUBDIRS = linux windows
|
||||
|
||||
.PHONY: package package-clean package-install package-uninstall
|
||||
package package-clean package-install package-uninstall:
|
||||
$(MAKE) -C $(TARGET_OS) $@
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
65
ClientPasswordManager/package/linux/Makefile.am
Normal file
65
ClientPasswordManager/package/linux/Makefile.am
Normal file
@@ -0,0 +1,65 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
RPM_FILE = $(PACKAGE)-$(VERSION)-$(RELEASE).$(target_cpu).rpm
|
||||
SRPM_FILE = $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm
|
||||
|
||||
.PHONY: package package-clean package-install package-uninstall
|
||||
|
||||
#all: $(RPM_FILE)
|
||||
|
||||
package: $(RPM_FILE)
|
||||
|
||||
all clean:
|
||||
|
||||
$(RPM_FILE):
|
||||
cd $(top_srcdir); make dist
|
||||
rm -rf RPM
|
||||
mkdir RPM
|
||||
echo %_topdir `pwd`/RPM > $(HOME)/.rpmmacros
|
||||
mkdir -p RPM/BUILD
|
||||
mkdir -p RPM/RPMS
|
||||
mkdir -p RPM/SOURCES
|
||||
mkdir -p RPM/SPECS
|
||||
mkdir -p RPM/SRPMS
|
||||
cp clientpasswordmanager.spec RPM/SPECS
|
||||
cp $(top_srcdir)/$(PACKAGE)-$(VERSION).tar.gz RPM/SOURCES
|
||||
mv $(top_srcdir)/$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)-$(RELEASE).tar.gz
|
||||
rpmbuild -ba -v -vv --target=$(target_triplet) RPM/SPECS/clientpasswordmanager.spec
|
||||
cp RPM/RPMS/*/$(RPM_FILE) .
|
||||
cp RPM/SRPMS/$(SRPM_FILE) .
|
||||
|
||||
package-install: package
|
||||
su -c "rpm -Uvh $(RPM_FILE)"
|
||||
|
||||
package-uninstall:
|
||||
su -c "rpm -e $(PACKAGE)"
|
||||
|
||||
package-clean clean-local:
|
||||
rm -rf *.rpm RPM *.gz
|
||||
|
||||
distclean-local: package-clean
|
||||
rm -f Makefile clientpasswordmanager.spec
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
# SuSE Specific autobuild tags
|
||||
# neededforbuild mono mono-devel pkgconfig glib2 glib2-devel libicu26
|
||||
|
||||
%define prefix /opt/novell/clientpasswordmanager
|
||||
|
||||
Summary: ClientPasswordManager
|
||||
Name: @PACKAGE@
|
||||
Version: @VERSION@
|
||||
Release: @RELEASE@
|
||||
Copyright: GPL
|
||||
Group: Applications/Productivity
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
URL: http://forge.novell.com/modules/xfmod/project/?isecure
|
||||
#Distribution :
|
||||
Vendor: <unknown>
|
||||
Packager: <unknown>
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}
|
||||
|
||||
Requires: mono >= 0.31
|
||||
Obsoletes: %{name} <= %{version}
|
||||
#=============================================================================
|
||||
%Description
|
||||
ClientPasswordManager provides an infrastructure that allows trusted
|
||||
applications to share passwords to help provide a Single Sign-On experience
|
||||
to the user.
|
||||
|
||||
#=============================================================================
|
||||
%ChangeLog
|
||||
|
||||
|
||||
#=============================================================================
|
||||
%Prep
|
||||
%setup -n %{name}-%{version}
|
||||
|
||||
|
||||
#=============================================================================
|
||||
%Build
|
||||
./configure --prefix=%{prefix}
|
||||
make
|
||||
|
||||
#=============================================================================
|
||||
%Install
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
|
||||
#=============================================================================
|
||||
%Clean
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
|
||||
#=============================================================================
|
||||
%Post
|
||||
cd /opt/novell/clientpasswordmanager/lib
|
||||
gacutil -i Novell.Security.ClientPasswordManager.NetCredential.dll
|
||||
gacutil -i Novell.Security.ClientPasswordManager.UsernameDialog.dll
|
||||
gacutil -i Novell.Security.ClientPasswordManager.PasswordDialog.dll
|
||||
gacutil -i Novell.Security.Utilities.dll
|
||||
exit 0
|
||||
|
||||
#=============================================================================
|
||||
%Preun
|
||||
gacutil -u Novell.Security.ClientPasswordManager.NetCredential
|
||||
gacutil -u Novell.Security.ClientPasswordManager.UsernameDialog
|
||||
gacutil -u Novell.Security.ClientPasswordManager.PasswordDialog
|
||||
gacutil -u Novell.Security.Utilities
|
||||
exit 0
|
||||
|
||||
#=============================================================================
|
||||
%Files
|
||||
%defattr(-,root,root)
|
||||
%{prefix}/*
|
||||
#%{prefix}/lib/*
|
||||
#%{prefix}/share/*
|
||||
|
||||
32
ClientPasswordManager/package/windows/Makefile.am
Normal file
32
ClientPasswordManager/package/windows/Makefile.am
Normal file
@@ -0,0 +1,32 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
SUBDIRS = clientpasswordmanager-msm
|
||||
|
||||
.PHONY: package-clean package-install package-uninstall
|
||||
|
||||
package package-clean package-install package-uninstall:
|
||||
$(MAKE) -C clientpasswordmanager-msm $@
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
#######################################################################
|
||||
#
|
||||
# Copyright (C) 2004 Novell, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
MSM_FILE = $(PACKAGE)-$(VERSION)-$(RELEASE).msm
|
||||
MSM_LOG_FILE = devenv-clientpasswordmanager-msm.log
|
||||
|
||||
.PHONY: package package-clean package-install package-uninstall c-sharp-net-credential c-sharp-password-dialog c-sharp-username-dialog c-sharp-utilities devenv
|
||||
|
||||
#all clean:
|
||||
|
||||
package: $(MSM_FILE)
|
||||
|
||||
devenv:
|
||||
@if ! test -x "$(VSINSTALLDIR)/devenv.exe"; then echo "Error: Microsoft Visual Studio .NET is currently required to build MSI and MSM packages"; exit 1; fi
|
||||
|
||||
$(MSM_FILE): devenv
|
||||
@rm -f $(MSM_LOG_FILE) $@
|
||||
@CMD='"$(VSINSTALLDIR)/devenv.exe" ../../../ClientPasswordManager.sln /build $(DEVENV_CONFIGURATION) /project clientpasswordmanager-msm /out $(MSM_LOG_FILE)'; \
|
||||
echo $$CMD; \
|
||||
if eval $$CMD; then \
|
||||
ls -l $(DEVENV_CONFIGURATION)/clientpasswordmanager-msm.msm; \
|
||||
else \
|
||||
grep -a "ERROR:" $(MSM_LOG_FILE); \
|
||||
fi
|
||||
|
||||
securesink:
|
||||
make -C ../.. all
|
||||
|
||||
package-clean clean-local:
|
||||
rm -rf Release/* Release Debug/* Debug*/Release */Debug *.log *.suo
|
||||
|
||||
clean:
|
||||
rm -rf Release/* Release Debug/* Debug */Release */Debug *.log *.suo
|
||||
|
||||
distclean-local: package-clean
|
||||
rm -f Makefile clientpasswordmanager.msm
|
||||
|
||||
maintainer-clean-local:
|
||||
rm -f Makefile.in
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,326 @@
|
||||
"DeployProject"
|
||||
{
|
||||
"VSVersion" = "3:701"
|
||||
"ProjectType" = "8:{DD7A5B58-C2F9-40FF-B2EF-0773356FB978}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:clientpasswordmanager-msm"
|
||||
"LanguageId" = "3:1033"
|
||||
"CodePage" = "3:1252"
|
||||
"UILanguageId" = "3:1033"
|
||||
"SccProjectName" = "8:"
|
||||
"SccLocalPath" = "8:"
|
||||
"SccAuxPath" = "8:"
|
||||
"SccProvider" = "8:"
|
||||
"Hierarchy"
|
||||
{
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_3AD7204448FD4A0FB065CE3B19B85187"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_3CA7DFE20AFF49E1A5059CAA12A6F262"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_763071E9529E47298E0D483C70C9DD2C"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_C87D109CB52E451B8D4C9C425B9F408F"
|
||||
"OwnerKey" = "8:_763071E9529E47298E0D483C70C9DD2C"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_C87D109CB52E451B8D4C9C425B9F408F"
|
||||
"OwnerKey" = "8:_D54A8D63A6224AABA81E04F4DB6AD917"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_C87D109CB52E451B8D4C9C425B9F408F"
|
||||
"OwnerKey" = "8:_3CA7DFE20AFF49E1A5059CAA12A6F262"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_C87D109CB52E451B8D4C9C425B9F408F"
|
||||
"OwnerKey" = "8:_3AD7204448FD4A0FB065CE3B19B85187"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_D54A8D63A6224AABA81E04F4DB6AD917"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
"Debug"
|
||||
{
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:Debug\\clientpasswordmanager-msm.msm"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:1"
|
||||
}
|
||||
"Release"
|
||||
{
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:Release\\clientpasswordmanager-msm.msm"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:1"
|
||||
}
|
||||
}
|
||||
"Deployable"
|
||||
{
|
||||
"CustomAction"
|
||||
{
|
||||
}
|
||||
"DefaultFeature"
|
||||
{
|
||||
"Name" = "8:DefaultFeature"
|
||||
"Title" = "8:"
|
||||
"Description" = "8:"
|
||||
}
|
||||
"File"
|
||||
{
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
}
|
||||
"Folder"
|
||||
{
|
||||
"{78BAF5CE-F2E5-45BE-83BC-DB6AF387E941}:_6E6B01F2741A44CEAD98C1596C6D5ECF"
|
||||
{
|
||||
"Name" = "8:#1910"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:CommonFilesFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{29CD8198-A6F0-4B93-8B90-AC03CFEAD328}:_99CD6F04CF034FEC8E2E893187E81441"
|
||||
{
|
||||
"DefaultLocation" = "8:[TARGETDIR]"
|
||||
"DisplayName" = "8:Module Retargetable Folder"
|
||||
"Description" = "8:"
|
||||
"Name" = "8:Module Retargetable Folder"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:TRUE"
|
||||
"Property" = "8:NEWRETARGETABLEPROPERTY1"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Sequences"
|
||||
{
|
||||
}
|
||||
"MergeModule"
|
||||
{
|
||||
"{35A69C6E-5BA4-440D-803D-762B59A45393}:_C87D109CB52E451B8D4C9C425B9F408F"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:TRUE"
|
||||
"SourcePath" = "8:dotnetfxredist_x86.msm"
|
||||
"LanguageId" = "3:1033"
|
||||
"Exclude" = "11:FALSE"
|
||||
"Folder" = "8:"
|
||||
"Feature" = "8:"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"Module"
|
||||
{
|
||||
"ModuleSignature" = "8:MergeModule.6E7C68BEF7C242F99CC96098C0C93419"
|
||||
"Version" = "8:1.0.0.0"
|
||||
"Title" = "8:clientpasswordmanager-msm"
|
||||
"Subject" = "8:"
|
||||
"Author" = "8:Novell, Inc."
|
||||
"Keywords" = "8:"
|
||||
"Comments" = "8:"
|
||||
"SearchPath" = "8:"
|
||||
"UseSystemSearchPath" = "11:TRUE"
|
||||
}
|
||||
"ProjectOutput"
|
||||
{
|
||||
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_3AD7204448FD4A0FB065CE3B19B85187"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\c-sharp-net-credential\\obj\\Debug\\Novell.Security.ClientPasswordManager.NetCredential.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99CD6F04CF034FEC8E2E893187E81441"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{D7D0F5D8-0F45-4DCA-818B-8E71168A2CA3}"
|
||||
"ShowKeyOutput" = "11:FALSE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_3CA7DFE20AFF49E1A5059CAA12A6F262"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\c-sharp-username-dialog\\obj\\Debug\\Novell.Security.ClientPasswordManager.UsernameDialog.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99CD6F04CF034FEC8E2E893187E81441"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{AFE3BA84-436C-4DD1-BA01-3B8C6B9D125C}"
|
||||
"ShowKeyOutput" = "11:FALSE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_763071E9529E47298E0D483C70C9DD2C"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\c-sharp-password-dialog\\obj\\Debug\\Novell.Security.ClientPasswordManager.PasswordDialog.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99CD6F04CF034FEC8E2E893187E81441"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{5A211C70-3AEB-4305-8CB6-42757D01DC22}"
|
||||
"ShowKeyOutput" = "11:FALSE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_D54A8D63A6224AABA81E04F4DB6AD917"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\c-sharp-utilities\\obj\\Debug\\Novell.Security.Utilities.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99CD6F04CF034FEC8E2E893187E81441"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{BBAD68F3-93C6-448F-8F79-F8CAEA3200C5}"
|
||||
"ShowKeyOutput" = "11:FALSE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Registry"
|
||||
{
|
||||
"HKLM"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKCU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKCR"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKPU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user