display first page of pdf as image in c# : Change font on pdf form application control tool html azure .net online 05-welling-php-mysql-web40-part88

367
Using Basic Authentication in PHP
In addition to being poorly supported by installed web browsers,digest authentication
is still not very secure.Both basic and digest authentication provide a low level of securi-
ty.Neither gives the user any assurance that he is dealing with the machine he intended
to access.Both might permit a cracker to replay the same request to the server.Because
basic authentication transmits the user’s password as plain text,it allows any cracker capa-
ble of capturing packets to impersonate the user for making any request.
Basic authentication provides a (low) level of security similar to that commonly used
to connect to machines via Telnet or FTP,transmitting passwords in plaintext.Digest
authentication is somewhat more secure,encrypting passwords before transmitting them.
When you combine basic authentication with SSL and digital certificates,all parts of
a web transaction can be protected by strong security.If you want strong security, you
should read Chapter 17,“Implementing Secure Transactions with PHP and MySQL.”
However,for many situations,a fast,but relatively insecure, method such as basic authen-
tication is appropriate.
Basic authentication protects a named realm and requires users to provide a valid
username and password.Realms are named so that more than one realm can be on the
same server. Different files or directories on the same server can be part of different
realms, each protected by a different set of names and passwords.Named realms also let
you group multiple directories on the one host or virtual host as a realm and protect
them all with one password.
Using Basic Authentication in PHP
PHP scripts are generally cross-platform,but using basic authentication relies on envi-
ronment variables set by the server.For an HTTP authentication script to run on
Apache using PHP as an Apache module or on IIS using PHP as an ISAPI module, it
needs to detect the server type and behave slightly differently.The script in Listing 16.4
will run on both servers.
Listing 16.4 http.php—PHP Can Trigger HTTP Basic Authentication
<?php
// if we are using IIS, we need to set $PHP_AUTH_USER and $PHP_AUTH_PW
if (substr($_SERVER[‘SERVER_SOFTWARE’], 0, 9) == ‘Microsoft’ &&
!isset($_SERVER[‘PHP_AUTH_USER’]) &&
!isset($_SERVER[‘PHP_AUTH_PW’]) &&
substr($_SERVER[‘HTTP_AUTHORIZATION’], 0, 6) == ‘Basic ‘
)
{
list($_SERVER[‘PHP_AUTH_USER’], $_SERVER[‘PHP_AUTH_PW’]) =
explode(‘:’, base64_decode(substr($_SERVER[‘HTTP_AUTHORIZATION’], 6)));
}
Change font on pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
acrobat create pdf form; change font in pdf fillable form
Change font on pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
pdf form maker; build pdf forms
368
Chapter 16 Implementing Authentication with PHP and MySQL
// Replace this if statement with a database query or similar
if ($_SERVER[‘PHP_AUTH_USER’] != ‘user’ || $_SERVER[‘PHP_AUTH_PW’] != ‘pass’)
{
// visitor has not yet given details, or their
// name and password combination are not correct
header(‘WWW-Authenticate: Basic realm=”Realm-Name”’);
if (substr($_SERVER[‘SERVER_SOFTWARE’], 0, 9) == ‘Microsoft’)
header(‘Status: 401 Unauthorized’);
else
header(‘HTTP/1.0 401 Unauthorized’);
echo ‘<h1>Go Away!</h1>’;
echo ‘You are not authorized to view this resource.’;
}
else
{
// visitor has provided correct details
echo ‘<h1>Here it is!</h1>’;
echo ‘<p>I bet you are glad you can see this secret page.</p>’;
}
?>
The code in Listing 16.4 acts similarly to the previous listings in this chapter.If the user
has not yet provided authentication information,it will be requested.If she has provided
incorrect information,she is given a rejection message. If she provides a matching name-
password pair,she is presented with the contents of the page.
In this case,the user will see an interface somewhat different from the previous list-
ings.This script does not provide an HTML form for login information.The user’s
browser presents her with a dialog box. Some people see this as an improvement;others
would prefer to have complete control over the visual aspects of the interface.The login
dialog box that Internet Explorer provides is shown in Figure 16.4.
Because the authentication is being assisted by features built into the browser,the
browser chooses to exercise some discretion in how failed authorization attempts are
handled.Internet Explorer lets the user try to authenticate three times before displaying
the rejection page.Netscape Navigator lets the user try an unlimited number of times,
popping up a dialog box to ask,“Authorization failed.Retry?”between attempts.
Netscape displays the rejection page only if the user clicks Cancel.
As with the code given in Listings 16.1 and 16.2, you could include this code in
pages you wanted to protect or automatically prepend it to every file in a directory.
Listing 16.4 Continued
C# PDF File Compress Library: Compress reduce PDF size in C#.net
RasterEdge.Imaging.Font.dll. Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options TargetResolution = 150F; // to change image compression
changing font size in pdf form; change tab order in pdf form
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce font resources: Font resources will also take up too Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing 150.0F 'to change image compression
add email button to pdf form; cannot save pdf form
369
Using Basic Authentication with Apache’s .htaccess Files
Figure 16.4 The user’s browser is responsible for the appearance of the dia-
log box when using HTTP authentication.
Using Basic Authentication with Apache’s 
.htaccess
Files
You can achieve similar results to the script in Listing 16.4 without writing a PHP
script.
The Apache web server contains a number of different authentication modules that
can be used to decide the validity of data entered by a user.The easiest to use is
mod_auth
,which compares name-password pairs to lines in a text file on the server.
To get the same output as the preceding script,you need to create two separate
HTML files:one for the content and one for the rejection page.We skipped some
HTML elements in the previous examples but really should include 
<html>
and 
<body>
tags when generating HTML.
Listing 16.5,named 
content.html
,contains the content that authorized users see.
Listing 16.6,called 
rejection.html
,contains the rejection page.Having a page to show
in case of errors is optional,but it is a nice, professional touch if you put something use-
ful on it. Given that this page will be shown when a user attempts to enter a protected
area but is rejected,useful content might include instructions on how to register for a
password,or how to get a password reset and emailed if it has been forgotten.
C# PDF insert text Library: insert text into PDF content in C#.net
Powerful .NET PDF edit control allows modify existing scanned PDF text. Ability to change text font, color, size and location and output a new PDF document.
create a fillable pdf form from a pdf; add form fields to pdf online
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Allow users to add comments online in ASPX webpage. Able to change font size in PDF comment box. Able to save and print sticky notes in PDF file.
pdf fillable form creator; add form fields to pdf
370
Chapter 16 Implementing Authentication with PHP and MySQL
Listing 16.5 content.html— Sample Content
<html><body>
<h1>Here it is!</h1>
<p>I bet you are glad you can see this secret page.</p>
</body></html>
Listing 16.6 rejection.html—Sample 401 Error Page
<html><body>
<h1>Go Away!</h1>
<p>You are not authorized to view this resource.</p>
</body></html>
There is nothing new in these files.The interesting file for this example is Listing 16.7.
This file needs to be called 
.htaccess
and will control accesses to files and any subdi-
rectories in its directory.
Listing 16.7 .htaccess— An .htaccess File Can Set Many Apache Configuration
Settings, Including Activating Authentication
ErrorDocument 401 /chapter16/rejection.html
AuthUserFile /home/book/.htpass
AuthGroupFile /dev/null
AuthName “Realm-Name”
AuthType Basic
require valid-user
Listing 16.7 is an 
.htaccess
file to turn on basic authentication in a directory.Many
settings can be made in an 
.htaccess
file,but the six lines in this example all relate to
authentication.
The first line
ErrorDocument 401 /chapter16/rejection.html
tells Apache what document to display for visitors who fail to authenticate (HTTP error
number 401).You can use other 
ErrorDocument
directives to provide your own pages
for other HTTP errors such as 404.The syntax is
ErrorDocument error_number URL
For a page to handle error 401,it is important that the URL given is publicly available.
It would not be very useful in providing a customized error page to tell people that their
authorization failed if the page is locked in a directory in which they need to successful-
ly authenticate to see.
VB.NET PDF Password Library: add, remove, edit PDF file password
RasterEdge.Imaging.Font.dll. passwordSetting.IsHighReso = True ' Allow to change document. passwordSetting.IsAssemble = True ' Add password to PDF file.
chrome pdf save form data; convert word doc to pdf with editable fields
C# PDF Password Library: add, remove, edit PDF file password in C#
RasterEdge.Imaging.Font.dll. passwordSetting.IsHighReso = true; // Allow to change document. passwordSetting.IsAssemble = true; // Add password to PDF file.
create a form in pdf; change font in pdf form field
371
Using Basic Authentication with Apache’s .htaccess Files
The line
AuthUserFile /home/book/.htpass
tells Apache where to find the file that contains authorized users’passwords.This file is
often named 
.htpass
,but you can give it any name you prefer.It is not important what
you call this file,but it is important where you store it. It should not be stored within
the web tree—somewhere that people can download it via the web server.The sample
.htpass
file is shown in Listing 16.8.
As well as specifying individual users who are authorized, it is possible to specify that
only authorized users who fall into specific groups may access resources.We chose not
to,so the line
AuthGroupFile /dev/null
sets the 
AuthGroupFile
to point to 
/dev/null
,a special file on Unix systems that is
guaranteed to be null.
Like the PHP example,to use HTTP authentication,you need to name the realm as
follows:
AuthName “Realm-Name”
You can choose any realm name you prefer,but bear in mind that the name will be
shown to your visitors.To make it obvious that the name in the example should be
changed,we named ours 
“Realm-Name”
.
Because a number of different authentication methods are supported,you need to
specify which authentication method you are using.Here,you use 
Basic
authentication,
as specified by this directive:
AuthType Basic
You also need to specify who is allowed access.You could specify particular users,partic-
ular groups,or as we have done, simply allow any authenticated user access.The line
require valid-user
specifies that any valid user is to be allowed access.
Listing 16.8 .htpass— The Password File Stores Usernames and Each User’s
Encrypted Password
user1:0nRp9M80GS7zM
user2:nC13sOTOhp.ow
user3:yjQMCPWjXFTzU
user4:LOmlMEi/hAme2
Each line in the 
.htpass
file contains a username,a colon,and that user’s encrypted
password.
Annotate, Redact Image in .NET Winforms| Online Tutorials
Click "Font" to change annotations font color, size We are dedicated to provide powerful & profession imaging controls, PDF document, image to pdf
best way to create pdf forms; add signature field to pdf
C# PDF Text Box Edit Library: add, delete, update PDF text box in
Support to change font color in PDF text box. Ability to change text size in PDF text box. Adding text box is another way to add text to PDF page.
change font size in fillable pdf form; add print button to pdf form
372
Chapter 16 Implementing Authentication with PHP and MySQL
The exact contents of your 
.htpass
file will vary.To create it,you use a small pro-
gram called 
htpasswd
that comes in the Apache distribution.
The 
htpasswd
program is used in one of the following ways:
htpasswd [-cmdps] passwordfile username
or
htpasswd -b[cmdps] passwordfile username password
The only switch that you need to use is 
-c
.Using 
-c
tells 
htpasswd
to create the file.
You must use this for the first user you add. Be careful not to use it for other users
because,if the file exists,
htpasswd
will delete it and create a new one.
The optional 
m
,
d
,
p
,or 
s
switches can be used if you want to specify which encryp-
tion algorithm (including no encryption) you would like to use.
The 
b
switch tells the program to expect the password as a parameter rather than
prompt for it.This feature is useful if you want to call 
htpasswd
noninteractively as part
of a batch process,but you should not use it if you are calling 
htpasswd
from the com-
mand line.
The following commands created the file shown in Listing 16.8:
htpasswd -bc /home/book/.htpass user1 pass1
htpasswd -b /home/book/.htpass user2 pass2
htpasswd -b /home/book/.htpass user4 pass3
htpasswd -b /home/book/.htpass user4 pass4
Note that 
htpasswd
may not be in your path:If it is not,you may need to supply the
full path to it. On many systems,you will find it in the 
/usr/local/apache/bin
directory.
This sort of authentication is easy to set up, but there are a few problems with using
an 
.htaccess
file this way.
Users and passwords are stored in a text file.Each time a browser requests a file that is
protected by the 
.htaccess
file,the server must parse the 
.htaccess
file and then parse
the password file,attempting to match the username and password.Instead of using an
.htaccess
file,you could specify the same things in your 
httpd.conf
file—the main
configuration file for the web server.An 
.htaccess
file is parsed every time a file is
requested.The 
httpd.conf
file is parsed only when the server is initially started.This
approach is faster, but means that if you want to make changes,you need to stop and
restart the server.
Regardless of where you store the server directives,the password file still needs to be
searched for every request.This means that,like other techniques we have looked at that
use a flat file, this would not be appropriate for hundreds or thousands of users.
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Able to edit and change PDF annotation properties such as font size or color. Abilities to draw markups on PDF document or stamp on PDF file.
add text field to pdf; add fillable fields to pdf
373
Using Basic Authentication with IIS
Using Basic Authentication with IIS
Like Apache, IIS supports HTTP authentication.Apache uses the Unix approach and is
controlled by editing text files, and as you might expect, selecting options in dialog boxes
controls the IIS setup.
Using Windows XP,you change the configuration of Internet Information Server 5
(IIS5) using the Internet Information Services.You can find this utility by choosing
Administrative Tools in the Control Panel.
The Internet Information Services application looks something like the window
shown in Figure 16.5.The tree control on the left side shows that on the machine
named W2,a number of services are running.The one of interest here is the default
website.Within this website is a directory called 
protected
.Inside this directory is a file
called 
content.html
.
Figure 16.5 The Internet Information Services application allows you to
configure Internet Information Server 5.
To add basic authentication to the 
protected
directory,right-click on it and select
Properties from the context menu.Using the Properties dialog,you can change many
settings for this directory.The two tabs of interest here are Directory Security and
Custom Errors.One of the options on the Directory Security tab is Anonymous Access
and Authentication Control.Clicking this Edit button brings up the dialog box shown in
Figure 16.6.
Within this dialog,you can disable anonymous access and turn on basic authentica-
tion.With the settings shown in Figure 16.6, only people who provide an appropriate
name and password can view files in this directory.
To duplicate the behavior of the previous examples,you can also provide a page to
tell users that their authentication details were not correct.Closing the Authentication
Methods dialog box allows you to choose the Custom Errors tab.
Figure 16.6 IIS5 allows anonymous access by default but allows you to turn
on authentication.
The Custom Errors tab,shown in Figure 16.7,associates errors with error messages.
Here, you store the same rejection file used earlier,
rejection.html
,shown in 
Listing 16.6.IIS enables you to easily provide a more specific error message than Apache
does,providing the HTTP error code that occurred and a reason why it occurred.For
error 401,which represents failed authentication,IIS provides five different reasons.You
could provide different messages for each.
That is all you need to do to require authentication for this directory using IIS5.Like
a lot of Windows software,it is easier to set up than similar Unix software but harder to
copy from machine to machine or directory to directory.Accidentally setting it up in a
way that makes your machine insecure is also easy.
The major flaw with IIS’s approach is that it authenticates web users by comparing
their login details to accounts on the machine.If you want to allow a user 
“john”
to log
in with the password 
“password”
,you need to create a user account on the machine,or
on a domain,with this name and password.You need to be very careful when you are
creating accounts for web authentication so that the users have only the account rights
they need to view web pages and do not have other rights such as Telnet access.
374
Chapter 16 Implementing Authentication with PHP and MySQL
375
Using mod_auth_mysql Authentication
Figure 16.7 The Custom Errors tab lets you associate custom error pages
with error events.
Using 
mod_auth_mysql
Authentication
As already mentioned,
mod_auth
is easy to set up with Apache and is effective. Because it
stores users in a text file,it is not really practical for busy sites with large numbers of
users.
Fortunately,you can have most of the ease of 
mod_auth
,combined with the speed of
a database by using 
mod_auth_mysql
.This module works in much the same way as
mod_auth
,but because it uses a MySQL database instead of a text file,it can search large
user lists quickly.
To use it,you need to compile and install the module on your system or ask your sys-
tem administrator to install it.
Installing mod_auth_mysql
To use 
mod_auth_mysql
,you need to set up Apache and MySQL according to the
instructions in Appendix A,“Installing PHP and MySQL,” but add a few extra steps.You
376
Chapter 16 Implementing Authentication with PHP and MySQL
can find reasonable instructions in the files 
README
and 
USAGE
,which are in the 
distribution,but they refer to previous versions’behavior in some places. Here is a 
summary:
1. Obtain the distribution archive for the module. It is on the CD-ROM that came
with this book,but you can always get the latest version from
http://sourceforge.net/projects/mod-auth-mysql/.
2. Unzip and untar the source code.
3. Change to the 
mod_auth_mysql
directory,run 
make
,and then 
make install
.You
may need to change the install locations for MySQL in the make file (
MakeFile
).
4. Add this line to 
httpd.conf
LoadModule mysql_auth_module libexec/mod_auth_mysql.so
to dynamically load the module into Apache.
5. Create a database and table in MySQL to contain authentication information.It
does not need to be a separate database or table; you can use an existing table such
as the auth database from the example earlier in this chapter.
6. Add a line to your 
httpd.conf
file to give 
mod_auth_mysql
the parameters it
needs to connect to MySQL.The directive will look like
Auth_MySQL_Info hostname user password
Did It Work?
The easiest way to check whether your compilation worked is to see whether Apache
will start.To start Apache,if you have SSL support,type
/usr/local/apache/bin/apachectl startssl
If you don’t have SSL support,you can type
/usr/local/apache/bin/apachectl start
If it starts with the 
Auth_MySQL_Info
directive in the 
httpd.conf
file,
mod_auth_mysql
was successfully added.
Using mod_auth_mysql
After you have successfully installed the 
mod_auth_mysql
module,using it is no harder
than using 
mod_auth
.Listing 16.9 shows a sample 
.htaccess
file that will authenticate
users with encrypted passwords stored in the database created earlier in this chapter.
Documents you may be interested
Documents you may be interested