Step-by-Step Guide For Active Directory Federation Services
Step-by-Step Guide For Active Directory Federation Services
Federation Services
Microsoft Corporation
Abstract
This guide provides instructions for setting up Active Directory Federation Services
(ADFS) in a small test lab environment. The instructions in this guide should take
approximately three hours to complete. This guide walks you through setup of a claims-
aware application and a Windows NT token–based application on an ADFS-enabled Web
server. It also explains how to configure two federation servers that authenticate and
authorize federated access to both types of applications. No additional downloads are
required; you can simply use the code in this guide to create the claims-aware application
and the Windows NT token–based application.
Information in this document, including URL and other Internet Web site references, is
subject to change without notice. Unless otherwise noted, the example companies,
organizations, products, domain names, e-mail addresses, logos, people, places, and
events depicted herein are fictitious, and no association with any real company,
organization, product, domain name, e-mail address, logo, person, place, or event is
intended or should be inferred. Complying with all applicable copyright laws is the
responsibility of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying,
recording, or otherwise), or for any purpose, without the express written permission of
Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other
intellectual property rights covering subject matter in this document. Except as expressly
provided in any written license agreement from Microsoft, the furnishing of this document
does not give you any license to these patents, trademarks, copyrights, or other
intellectual property.
Active Directory, Microsoft, MS-DOS, Windows, Windows NT, and Windows Server are
either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks
of their respective owners.
Contents
Step-by-Step Guide for Active Directory Federation Services................................. ...........1
Abstract.................................................................................................... ...................1
Contents........................................................................................................................ .....4
• Set up four computers (one client, one Web server, and two federation
servers) to participate in ADFS federation between two fictitious companies
(A. Datum Corporation and Trey Research).
Note
It is important to follow the steps in this guide in order.
For information about how to deploy or manage ADFS, look for ADFS planning,
deployment, and operations content on the Windows Server 2003 R2 Roadmap page
on the Microsoft Web site (http://go.microsoft.com/fwlink/?LinkId=45560).
Note
The federation server includes the functionality of the federation server proxy
role. For example, the federation server can perform client authentication,
home realm discovery, and sign-out.
Requirements
To complete the steps in this guide, you must have the following:
• Install and configure Internet Information Services (IIS) to work with self-
signed certificates.
Administrative Credentials
To perform all of the tasks in this step, log on to each of the four computers with the local
Administrator account. To create accounts in Active Directory, log on with the
Administrator account for the domain.
• Install IIS
Important
Before you configure your computers with static Internet Protocol (IP) addresses,
it is recommended that you first complete product activation for Microsoft
9
Windows® XP and Windows Server 2003 R2 while each of your computers still
has Internet connectivity. You may also want to download the IIS 6.0 Resource
Kit application to each computer (excluding the client computer) while it is
connected to the Internet.
Note
Make sure to set both the preferred and alternate Domain Name System (DNS)
server settings on the client. If both types of values are not configured as
specified, the ADFS scenario will not function.
255.255.255.0 192.168.1.4
255.255.255.0
255.255.255.0
10
Install IIS
Use the following procedure to install IIS on the adfsweb computer, the adfsresource
computer, and the adfsaccount computer.
To install IIS
1. Click Start, point to Control Panel, and then click Add or Remove
Programs.
Note
As a security best practice, domain controllers should not run as both federation
servers and domain controllers in a production environment.
To create a new forest using Dcpromo, use the procedure Create a new forest on the
Windows Server 2003 TechCenter Web site
(http://go.microsoft.com/fwlink/?LinkId=56119).
Note
It is important that you first configure the IP addresses as specified in the
previous table before you attempt to install Active Directory. This helps ensure
that DNS records are configured appropriately.
(new forest)
adfsclient adatum.com
adfsweb treyresearch.net
Note
In a production environment, certificates will be obtained from a certification
authority (CA). For the purposes of the test lab deployment that is covered in this
document, self-signed certificates are used.
Note
Although the ADFS Web Agent does not require that a SSL certificate be installed
in IIS when the ADFS Web Agent is installed, an SSL certificate is required when
a Windows NT token–based ADFS Web Agent is enabled.
Adfsresource selfssl /t
/n:cn=adfsresource.treyresearch.net /v:365
Note
When you see the prompt, select “Y” to replace the SSL settings for site 1.
3. On the Directory Security tab, click View Certificate, click the Details
tab, and then click Copy to File.
5. On the Export Private Key page, click No, do not export the private
key, and then click Next.
6. On the Export File Format page, click DER encoded binary X.509
(.Cer), and then click Next.
Note
This certificate must be imported to the adfsweb computer in the next
procedure. Therefore, you should make this file accessible over the
network to that computer.
8. On the Completing the Certificate Export Wizard, click Finish.
Note
You may need to map the network drive to obtain the adfsresource.cer
file. You can also copy the adfsresource.cer file directly from the
adfsresource computer to adfsweb, and then point the wizard to that
location.
10. On the Completing the Certificate Import Wizard page, verify that the
information that you provided is accurate, and then click Finish.
Administrative Credentials
To perform all of the procedures in this step, log on to the adfsaccount computer and the
adfsresource computer with the Administrator account for the domain. Log on to the
adfsweb computer with the local Administrator account.
6. In the ADFS Web Agents dialog box, select both the Claims-aware
applications check box and the Windows NT token–based applications
check box, and then click OK.
10. If you are prompted for the location of installation files, navigate to
R2 installation files\cmpnents\r2, and then click OK.
9. Under Trust policy, click Create a new trust policy, and then click
Next.
10. If you are prompted for the location of the installation files, navigate to
R2 Installation Folder\cmpnents\r2, and then click OK.
Note
As a security best practice, domain controllers should not run as both federation
servers and domain controllers, and IIS should not run under the Local System
account in a production environment.
3. On the Identity tab, click Local System in the menu, and when you see
the prompt Do you wish to run this application pool as Local system?,
click Yes, and then click OK.
6. On the Export Private Key page, click No, do not export the private
key, and then click Next.
7. On the Export File Format page, click DER encoded binary X.509
(.Cer), and then click Next.
Note
The adfsaccount token-signing certificate will be imported to the
adfsresource computer later (see Step 4: Configuring the Federation
Servers) when the Account Partner Wizard prompts you for the Account
Partner Verification Certificate. At that time you access this computer
over the network to obtain this file.
Administrative Credentials
To perform all the tasks in this step, log on to adfsweb with the local Administrator
account.
4. In the console tree, right-click Default Web Site, point to New, and then
click Virtual Directory.
6. On the Virtual Directory Alias page, in Alias, type tokenapp, and then
click Next.
7. On the Web Site Content Directory page, click Browse, highlight the
c:\inetpub\wwwroot folder, click the Make New Folder button, name the
folder tokenapp, click OK, and then click Next.
Note
Do not use capital letters in the tokenapp folder name. If this folder name
contains capital letters, users must also use capital letters when they
type the address of the Web site.
11. On the ASP.NET tab, in the ASP.NET version menu, make sure that
2.0.50727 is selected.
21
12. On the ADFS Web Agent tab, select the Enable the ADFS Web Agent
for Windows NT token-based applications check box, and then click OK
to accept the default values. When you see the prompt that explains that this
will enable anonymous access, click OK.
Note
The value in Return URL on this property page must match precisely
with the Application URL value that you specify when you set up the
application on the Federation Service for Trey Research.
13. Create the seven files that make up the Windows NT token–based
sample application by using the procedures in Appendix A: Creating the
Windows NT Token-based Sample Application. After you create them, copy
the files into the c:\inetpub\wwwroot\tokenapp folder.
Note
To perform this step, you should be logged on as a domain administrator
and not as a local administrator.
3. On the Welcome to the Web Site Creation Wizard page, click Next.
6. On the Web Site Home Directory page, click Browse, highlight the
c:\inetpub folder, click Make New Folder, name the folder stepbystep, click
OK, and then click Next.
7. On the Web Site Access Permissions page, make sure that Read is
selected, and then click Next.
3. On the ASP.NET tab, in the ASP.NET version menu, make sure that
2.0.50727 is selected.
6. In the console tree, right-click stepbystep, point to New, and then click
Virtual Directory.
8. On the Virtual Directory Alias page, in Alias, type claimapp, and then
click Next.
9. On the Web Site Content Directory page, click Browse, highlight the
c:\inetpub\stepbystep folder, click the Make New Folder button, name the
folder claimapp, click OK, and then click Next.
Note
Do not use capital letters in the claimapp folder name. If this folder name
contains capital letters, users must also use capital letters when they
type the address of the Web site.
10. On the Virtual Directory Access Permissions page, select the Read
and Run scripts check boxes, and then click Next.
Note
To view the new claimapp folder, you may need to refresh IIS.
13. On the Documents tab, verify that default.aspx is in the list. If it is not,
click Add, type default.aspx, click OK, and then click OK again.
6. On the SSL Port page, accept the default (SSL port 8081), and then
click Next.
7. On the Certificate Summary page, verify the details, and then click
Next.
9. Create the three files that make up the claims-aware sample application
by using the procedures in Appendix B: Creating the Claims-aware Sample
Application. After you create them, copy the files into the
c:\inetpub\stepbystep\claimapp folder.
25
• Make the Federation Service for Trey Research aware of both the claims-
aware application and the Windows NT token–based application.
Group claims must be configured differently for each Federation Service, depending on
the type of application that they map to. The following illustration shows how claims are
configured in this step for each Federation Service and application type.
26
Administrative Credentials
To perform all of the tasks in this step, log on to the adfsaccount computer and the
adfsresource computer with the Administrator account for the domain.
• Create and Map a Group Claim for the Windows NT Token-based Application
27
• Create a Group Claim for the Claims-aware Application
Note
This value is case sensitive.
5. On the Display Name tab, in the Display name for this trust policy
field, type Trey Research (replace any value that may already exist in this
field with Trey Research), and then click OK.
3. On the Welcome to the Add Account Store Wizard page, click Next.
5. On the Enable this Account Store page, ensure that the Enable this
account store check box is selected, and then click Next.
6. On the Completing the Add Account Store Wizard page, click Finish.
8. On the Enable this Application page, ensure that the Enable this
application check box is selected, and then click Next.
2. Right-click the Adatum TokenApp Claim group claim, and then click
Enable.
Note
The reference to 8081 in the Application URL is necessary to route SSL
traffic to port 8081 because the default Web site is using the default SSL
port (443).
8. On the Enable this Application page, ensure that the Enable this
application check box is selected, and then click Next.
9. On the Completing the Add Application Wizard page, click Finish.
2. Right-click the Adatum ClaimApp Claim group claim, and then click
32
Enable.
3. On the Welcome to the Add Account Partner Wizard page, click Next.
4. On the Import Policy File page, ensure that No is selected, and then
click Next.
Note
This value is case sensitive.
Note
You may need to map the network drive to obtain the adfsaccount_ts.cer
file. The account partner verification certificate is the token-signing
certificate that was exported from the adfsaccount computer in Step 2:
Installing ADFS and Configuring Local System.
9. On the Federation Scenario page, click Federated Web SSO, and then
click Next.
10. On the Account Partner Identity Claims page, select the UPN Claim
check box, and then click Next.
11. On the Accepted UPN Suffixes page, type adatum.com, click Add,
and then click Next.
12. On the Enable this Account Partner page, ensure that the Enable this
account partner check box is selected, and then click Next.
13. On the Completing the Add Account Partner Wizard page, click
Finish.
Note
This value is case sensitive. It must match exactly with the value that is
specified in the outgoing group claim mapping in the account partner
organization.
Note
This value is case sensitive. It must match exactly with the value that is
specified in the outgoing group claim mapping in the account partner
organization.
Note
This value is case sensitive.
5. On the Display Name tab, in the Display name for this trust policy
field, type A. Datum (replace any value that may already exist in this field
with A. Datum), and then click OK.
• Map a Global Group to the Group Claim for the Windows NT Token-based
Application
• Map a Global Group to the Group Claim for the Claims-aware Application
3. On the Welcome to the Add Account Store Wizard page, click Next.
Note
You can have only one Active Directory store that is associated with a
Federation Service. If the Active Directory option is not available, it is
because an Active Directory store has already been created for this
Federation Service.
5. On the Enable this Account Store page, ensure that the Enable this
account store check box is selected, and then click Next.
6. On the Completing the Add Account Store Wizard page, click Finish.
Map a Global Group to the Group Claim for the Windows NT Token–
based Application
Use the following procedure to map an Active Directory global group to the
Trey TokenApp Claim group claim.
To map a global group to the group claim for the Windows NT token–based
application
1. Click Start, point to All Programs, point to Administrative Tools, and
then click Active Directory Federation Services.
3. In the Create a New Group Claim Extraction dialog box, click Add,
type treytokenappusers, and then click OK.
To map a global group to the group claim for the claims-aware application
1. Click Start, point to All Programs, point to Administrative Tools, and
then click Active Directory Federation Services.
3. In the Create a New Group Claim Extraction dialog box, click Add,
type treyclaimappusers, and then click OK.
Next.
4. On the Import Policy File page, ensure that No is selected, and then
click Next.
Note
This value is case sensitive.
8. On the Federation Scenario page, click Federated Web SSO, and then
click Next.
9. On the Resource Partner Identity Claims page, select the UPN Claim
check box, and then click Next.
10. On the Select UPN Suffix page, click Replace all UPN domain
suffixes with the following, and then type adatum.com.
11. On the Enable this Resource Partner page, ensure that the Enable
this resource partner check box is selected, and then click Next.
12. On the Completing the Add Resource Partner Wizard page, click
Finish.
Note
This value is case sensitive. It must match exactly with the value that is
specified in the incoming group claim mapping in the resource partner
organization.
Note
This value is case sensitive. It must match exactly with the value that is
specified in the incoming group claim mapping in the resource partner
organization.
41
Administrative Credentials
To perform the tasks in this step, it is not necessary to log on with administrative
credentials to the client computer. In other words, if users Alansh or Adamcar are logged
on to the client, they can access both Web-based applications, without being added to
any of the local administrator groups (for example, Power Users, Administrators) for the
adfsclient computer.
3. On the Security tab, click the Local intranet icon, and then click Sites.
4. Click Advanced, and in Add this Web site to the zone, type
https://adfsaccount.adatum.com, and then click Add.
Note
You will be prompted twice (in the Security Alert dialog box) for
certificate information. You can install each certificate by clicking View
Certificate and then clicking Install, or you can click Yes each time that
you are prompted. Each of these Security Alert prompts displays the
message "The security certificate was issued by a company you have
not chosen to trust." This is expected behavior because self-signed
certificates are used for the purposes of this guide.
3. When you are prompted for your home realm, click A. Datum, and then
click Submit.
Note
You will be prompted one more time for a certificate.
5. Log off as Alansh, and then log on as Adamcar. Repeat steps 2 through 4
of this procedure. Compare the difference between Adam's passed claims
and Alan's passed claims.
Note
If you did not install the certificates from the previous procedures, you will
be prompted twice (in the Security Alert dialog box) for certificate
information. You can install each certificate by clicking View Certificate
and clicking Install, or you can click Yes each time that you are
prompted.
3. When you are prompted for your home realm, click A. Datum, and then
click Submit.
Note
If you did not install the certificate from the previous procedure, you will
be prompted one more time for a certificate.
5. Log off as Adamcar, and then log on as Alansh. Repeat steps 2 through 4
of this procedure. Notice that Alan can read blog messages, but he does not
have access rights to submit a blog message.
• Default.htm
44
• Blog.aspx
• Blog.aspx.cs
• Message.aspx
• Message.aspx.cs
• Web.config
• Blog.txt
For this application to function correctly, you must use the following procedures to create
each of the required files in order. After you create them, move the files to the
C:\inetpub\wwwroot\tokenapp directory on the adfsweb computer.
• Create the Default.htm File
2. Copy and paste the following code into a new Notepad file:
<head>
</head>
<body>
45
<br />
</p>
</body>
</html>
2. Copy and paste the following code into a new Notepad file:
<HTML>
<HEAD>
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<br />
</form>
</body>
</HTML>
2. Copy and paste the following code into a new Notepad file:
using System;
using System.IO;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security.SingleSignOn;
47
using System.Threading;
using System.Security.Principal;
namespace CHWWebApp
/// <summary>
/// </summary>
//
//
InitializeComponent();
base.OnInit(e);
/// <summary>
/// </summary>
{
48
#endregion
try
sw.Write(this.TextBox1.Text.ToString());
exception.Message.ToString();
2. Copy and paste the following code into a new Notepad file:
<head runat="server">
</head>
<body>
<div>
</div>
</form>
</body>
</html>
2. Copy and paste the following code into a new Notepad file:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
try
string oneLine;
Response.Write(oneLine);
51
Response.Write("<BR>");
Response.Write("<BR>");
Response.Write(myException.Message);
2. Copy and paste the following code into a new Notepad file:
<?xml version="1.0"?>
<configuration>
<system.web>
into the compiled page. Because this creates a larger file that
executes
more slowly, you should set this value to true only when
debugging and to
-->
<compilers>
<assemblies>
Add <error> tags for each of the errors you want to handle.
remote clients.
-->
<customErrors mode="RemoteOnly"/>
<!-- AUTHENTICATION
"Forms" You provide a custom form (Web page) for users to enter
their credentials, and then
-->
<identity impersonate="true"/>
<authentication mode="Windows"/>
<!-- AUTHORIZATION
(unauthenticated) users.
-->
54
<authorization>
<allow users="*"/>
-->
</authorization>
root.
-->
-->
cookieless="false" timeout="20"/>
<!-- GLOBALIZATION
-->
</system.web>
</configuration>
3. On the File menu, point to New, and then click Text Document.
• Default.aspx
• Web.config
• Default.aspx.cs
For this application to function correctly, you must use the following procedures to create
each of the required files in order. After you create them, move the files to the
C:\inetpub\stepbystep\claimapp directory on the adfsweb computer.
• Create the Default.aspx File
2. Copy and paste the following code into a new Notepad file:
<head>
<style>
<!--
.propertyTable th { border: 1px solid; padding: 0px 4px 0px 4px; font-
weight: bold; background-color: #cccccc ; text-align: left }
-->
</style>
</head>
<body>
<div class=banner>
</div>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div class=propertyHead>User.Identity</div>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div class=propertyHead>(IIdentity)User.Identity</div>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
59
</div>
<div class=propertyHead>(SingleSignOnIdentity)User.Identity</div>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div
class=propertyHead>SingleSignOnIdentity.SecurityPropertyCollection</div>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Uri</asp:TableHeaderCell>
<asp:TableHeaderCell>Claim Type</asp:TableHeaderCell>
<asp:TableHeaderCell>Claim Value</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div class=propertyHead>(IPrincipal)User.IsInRole(...)</div>
</asp:Table>
60
<table>
</table>
</div>
</div>
</form>
</body>
</html>
2. Copy and paste the following code into a new Notepad file:
<configuration>
<configSections>
<sectionGroup name="system.web">
<section name="websso"
type="System.Web.Security.SingleSignOn.WebSsoConfigurati
61
</sectionGroup>
</configSections>
<system.web>
<assemblies>
<add assembly="System.Web.Security.SingleSignOn.ClaimTransforms,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,
Custom=null"/>
</assemblies>
</compilation>
<customErrors mode="Off"/>
<httpModules>
<add
type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule,
System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, Custom=null" />
62
</httpModules>
<websso>
<authenticationrequired />
<eventloglevel>55</eventloglevel>
<auditsuccess>2</auditsuccess>
<urls>
<returnurl>https://adfsweb.treyresearch.net:8081/claimapp/</returnurl
>
</urls>
<cookies writecookies="true">
<path>/claimapp</path>
<lifetime>240</lifetime>
</cookies>
<fs>https://adfsresource.treyresearch.net/adfs/fs/federationserverservice.a
smx</fs>
</websso>
</system.web>
<system.diagnostics>
<switches>
</switches>
<listeners>
<add name="LSLogListener"
type="System.Web.Security.SingleSignOn.BoundedSizeLogFileTraceListener,
63
initializeData="c:\logdir\claimapp.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
2. Copy and paste the following code into a new Notepad file:
using System;
using System.Data;
using System.Collections.Generic;
using System.Configuration;
using System.Reflection;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security;
64
using System.Security.Principal;
using System.Web.Security.SingleSignOn;
using System.Web.Security.SingleSignOn.Authorization;
static _Default()
//
//
s_abbreviationMap.Add("System.Web.Security.SingleSignOn.Authorizat
ion", "SSO.Auth");
s_abbreviationMap.Add("System.Web.Security.SingleSignOn", "SSO");
s_abbreviationMap.Add("System", "S");
//
//
PagePropertyLoad();
IdentityLoad();
BaseIdentityLoad();
SSOIdentityLoad(ssoId);
SecurityPropertyTableLoad(ssoId);
//
//
if (!IsPostBack)
else
GoGetRoles(null, null);
//
//
if (ssoId == null)
{
66
SignOutUrl.Enabled = false;
else
if (ssoId.IsAuthenticated == false)
SignOutUrl.NavigateUrl = ssoId.SignInUrl;
else
SignOutUrl.NavigateUrl = ssoId.SignOutUrl;
Table t = SecurityPropertyTable;
if (ssoId == null)
AddNullValueRow(t);
return;
//
//
67
t.Rows.Add(CreateRow(securityProperty.Uri,
securityProperty.Name, securityProperty.Value, alternating));
alternating = !alternating;
Table t = RolesTable;
t.Rows.Clear();
t.Rows.Add(CreatePropertyRow(role, User.IsInRole(role),
alternating));
alternating = !alternating;
void IdentityLoad()
{
68
if (User.Identity == null)
AddNullValueRow(propertyTable);
else
propertyTable.Rows.Add(CreatePropertyRow("Type name",
User.Identity.GetType().FullName));
if (ssoId != null)
PropertyInfo[] props =
ssoId.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public
| BindingFlags.DeclaredOnly);
else
AddNullValueRow(propertyTable);
}
69
void PagePropertyLoad()
propertyTable.Rows.Add(CreatePropertyRow("Simplified Path",
leftSidePath));
void BaseIdentityLoad()
if (identity != null)
PropertyInfo[] props =
typeof(IIdentity).GetProperties(BindingFlags.Instance |
BindingFlags.Public | BindingFlags.DeclaredOnly);
else
AddNullValueRow(propertyTable);
}
70
cell.Text = NullValue;
row.CssClass = "s";
row.Cells.Add(cell);
table.Rows.Clear();
table.Rows.Add(row);
propertyTable.Rows.Add(CreatePropertyRow(name, val,
alternating));
alternating = !alternating;
}
71
if (value == null)
else
first.CssClass = "l";
first.Text = Abbreviate(s1);
second.Text = Abbreviate(s2);
third.Text = Abbreviate(s3);
if (alternating)
72
row.CssClass = "s";
row.Cells.Add(first);
row.Cells.Add(second);
row.Cells.Add(third);
return row;
if (s == null)
return NullValue;
string retVal = s;
//
//
if (retVal.IndexOf(pair.Key) != -1)
break;
return retVal;
73
//
//
UpdateRolesTable(roles);
Note
The procedures in this appendix are optional.
74
3. On the Directory Security tab, click View Certificate, click the Details
tab, and then click Copy to File.
5. On the Export Private Key page, click No, do not export the private
key, and then click Next.
6. On the Export File Format page, click DER encoded binary X.509
(.Cer), and then click Next.
7. On the File to Export page, type C:\adfsweb.cer, and then click Next.
Note
You can also copy the adfsresource.cer file directly from the
adfsresource computer to adfsweb and then point the wizard to that
location.
6. On the Completing the Certificate Import Wizard page, verify that the
information that you provided is accurate, and then click Finish.
To view or remove these certificates from the client, open a browser window. On the
Tools menu, click Internet Options. On the Content tab, click Certificates, and then
click the Trusted Root Certification Authorities tab.