Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In Microsoft Identity Manager 2016 (MIM), you can customize selected elements of the password portals, including the banner logo, string resources, and cascading style sheets.
Warning
Always clear the browser cache when any CSS customizations are made.
The following items are involved used for customizing the MIM 2016 password registration and reset portals:
Customizations folder: This is the folder that MIM 2016 checks prior to using the defaults. Each portal to be customized requires a Customizations folder. Customizations should be done only in this folder as the setup process doesn't overwrite this folder on upgrades, change mode installs, or repair mode installs.
Strings.resources: This is an XML-based file that allows you to modify the strings that appear in the portal. This file needs to reside in the Customizations folder.
Style.css: This is the cascading style sheet used by the portals for customization. Create and modify this style sheet to change the logo. You can also replace the entire contents of the style sheet with your own customizations.
For detailed step-by-step instructions on customizing the password registration and password reset portals, see Test Lab Guide: Demonstrating MIM 2016 Password Registration and Reset Portal Customization.
Warning
For MIM to recognize any customized changes, you must restart IIS by running iisreset
.
Customizations folder
On startup, MIM looks for the Strings.resources file in the Customizations folder before using the defaults. Create a Customizations folder under the directory for the portal you wish to customize (that is, the Password Registration portal or Password Reset portal). If you want to customize both portals, create a Customizations folder under each of the following locations:
c:\Program Files\Microsoft Forefront Identity Manager\2010\Password Registration Portal
c:\Program Files\Microsoft Forefront Identity Manager\2010\Password Reset Portal
To create a Customizations folder for the Password Registration portal:
Browse to the
c:\Program Files\Microsoft Forefront Identity Manager\2010\Password Registration Portal
folder.Create a folder named Customizations.
To create a Customizations folder for the Password Reset portal:
Browse to the
c:\Program Files\Microsoft Forefront Identity Manager\2010\Password Reset Portal
folder.Create a folder named Customizations.
Custom strings in the Strings.resources file
Many of the strings in the portal UI can be customized by creating a Strings.resources file and adding this file to the Customizations folder. Create a Strings.resources file for each portal that you wish to customize.
To create customized strings in the Strings.resources file:
In Notepad, copy and paste the following code into the Strings.resources file. Save the file in the Customizations folder for the portal.
<?xml version="1.0" encoding="utf-8"?> <root> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>2.0</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <!-- Customizations begin here --> <data name=" QAGateResetTitle " xml:space="preserve"> <value>Contoso Question and Answer Reset</value> </data> <data name="ResetPageTitle" xml:space="preserve"> <value>Contoso Self-Service Password Reset</value> </data> </root>
Under the
<!-- Customizations begin here -->
section in the code, change the data name to match the strings that you wish to customize. Enter the value for the string between the<value></value>
tags. See the next sections for the strings that can be customized and their default values.
Note
The Strings.resources file is language-neutral. To create language-specific customized strings, you must have that language pack installed, and save the file in the Strings format <language>-<culture>.resources
. For example, for the English language culture, the file name is Strings.en-us.resources.
Portal strings
The following table shows the portal strings that can be customized:
Portal string name | Default value |
---|---|
AboutLinkText | About |
ButtonCancel | Cancel |
ButtonFinish | Finish |
ButtonNext | Next |
ButtonOk | OK |
CancelFinishedMessage | Your session is no longer active. You can close the window, or you can restart by clicking the link below. |
CancelFinishedTitle | Session Ended |
ErrorDescription_3000 | An error has occurred. Please try again, and if the problem persists, contact your help desk or system administrator. (Error 3000) |
ErrorDescription_3001 | Ensure you enter your user name correctly. If you still cannot reset your password, please contact your helpdesk for assistance. (Error 3001) |
ErrorDescription_3002 | Your session has ended. Return to the home page to start again. (Error 3002) |
ErrorDescription_3003 | The current user account is not recognized by Forefront Identity Manager. Please contact your help desk or system administrator. (Error 3003) |
ErrorDescription_3004 | You are not authorized to register for password reset. Please contact your help desk or system administrator. (Error 3004) |
ErrorDescription_3005 | One or more answers that you provided do not match the answers which you provided during Password Registration. In order to reset your password, the answers that you provide now must match the answers that you provided when you registered. You can start again from the home page, or contact your help desk or system administrator. (Error 3005) |
ErrorDescription_3006 | The password that you entered is incorrect. You must enter the correct password in order to register for Password Reset. (Error 3006) |
ErrorDescription_3007 | You are temporarily prohibited from resetting your password. Please try again later, or contact your help desk or system administrator for assistance. (Error 3007) |
ErrorDescription_3008 | An error has occurred. Please try again, and if the problem persists, contact your help desk or system administrator. (Error 3008) |
ErrorDescription_3009 | Your input contains text in a format that is not allowed. Try again with different input, or contact your help desk or system administrator. (Error 3009) |
ErrorDescription_3010_Registration | Scripting is not enabled on your browser. Enable scripting and return to the Password Registration home page, or contact your help desk for assistance. |
ErrorDescription_3010_Reset | Scripting is not enabled on your browser. Enable scripting and return to the Password Reset home page, or contact your help desk for assistance. |
ErrorDescription_3011 | This site uses cookies. Configure your browser to accept cookies and try again, or contact your help desk for assistance. |
ErrorDescription_3012 | The data you entered did not match the security code that was sent to you. You can try to reset your password again, or contact your help desk for assistance. |
ErrorDescription_3013 | Unable to send a security code. Please contact your help desk for assistance. |
ErrorMessageDomainUsernameFormat | Enter your user name in the correct format. |
ErrorMessageDomainUsernameRequired | Enter a user name to continue. |
ErrorMessagePasswordRequired | Enter a password. |
ErrorMessagePasswordsDoNotMatch | Ensure both passwords match. |
ErrorPageDefaultHeading | Application Error Note: The heading is followed by '=' and the error message. |
ErrorPageServerTime | Server time: {0:T} Note: {0} is the time at which the exception was caught. 'T' causes the passed-in time to be formatted as a "long time" showing the hour, minute, and second. The AM/PM designation is also shown depending on the current culture. |
ErrorPageTitle | Forefront Identity Management - Password Error |
ErrorTitle_3000 | Error |
ErrorTitle_3001 | Access Denied |
ErrorTitle_3002 | Session Ended |
ErrorTitle_3003 | Unrecognized User |
ErrorTitle_3004 | Unauthorized User |
ErrorTitle_3005 | Answers Don't Match |
ErrorTitle_3006 | Incorrect Password |
ErrorTitle_3007 | Access Denied Temporarily |
ErrorTitle_3008 | Communication Error |
ErrorTitle_3009 | Prohibited Input |
ErrorTitle_3010 | Browser Configuration Error |
ErrorTitle_3011 | Browser Configuration Error |
ErrorTitle_3012 | Verification failed |
ErrorTitle_3013 | Unable to send security code |
FinalizeRegistrationHeading1 | If you ever need to reset your password: |
FinalizeRegistrationSubHeading1 | Go to the reset password portal |
FinalizeRegistrationSubHeading2 | Verify your identity |
FinalizeRegistrationSubHeading3 | Choose your new password |
FinishingDescription | Choose Your New Password |
FinishingTitle | Password Reset: |
GotoPortalPrefix | Go to |
GotoPortalSuffix | home page |
LabelTroubleshootingLinkText | View Details |
LoadingText | Loading ... |
NoScriptTagErrorMessage | Scripting is not enabled on your browser. Enable scripting and return to the home page, or contact your help desk for assistance. |
PasswordResetOperationGeneralErrorMessage | Error while attempting to reset password. |
PasswordResetOperationPolicyViolationErrorMessage | The password does not comply with your organization's password policies. |
PasswordResetOperationUserCantChangePasswordErrorMessage | Error while resetting password, the user cannot change the password. |
PrivacyStatement | Privacy Statement |
RegistrationDescription | Self-Service Password Registration |
RegistrationMission | If you ever forget your password, you can reset it yourself without calling your help desk. |
RegistrationPageTitle | Forefront Identity Management - Password Registration |
RegistrationSteps | Click 'Next' to begin the registration process. |
RegistrationSuccessDescription | You are now registered |
RegistrationSuccessTitle | Completed: |
RegistrationWelcomeTitle | Password Registration: |
ResetDescription | Self-Service Password Reset |
ResetEnterNamePrompt | Please enter your user name below |
ResetEnterPassword | Enter a new password: |
ResetExample1 | contoso\mmeyers |
ResetExample2 | mmeyers\@contoso.com |
ResetExamples | Examples: |
ResetPageTitle | Forefront Identity Management - Password Reset |
ResetReenterPassword | Re-enter the password: |
ResetSuccessDescription | Your password has been reset |
ResetSuccessTitle | Success: |
ResetUseNewPassword | You can now use your new password to log in. |
ResetUsernameTextFormat | (Resetting password for {0}) Note: {0} is the user's logon. |
ResetWelcomeTitle | Password Reset: |
TroubleshootingEmailSubject | FIM request processing error details |
TroubleshootingLabelAttributes | Attributes: |
TroubleshootingLabelCloseButton | Close |
TroubleshootingLabelCopyToClipboard | Copy to Clipboard |
TroubleshootingLabelCorrelationId | Correlation Id: |
TroubleshootingLabelDetails | Details: |
TroubleshootingLabelPostCopyClipboardMessage | The information has been copied to the clipboard. |
TroubleshootingLabelRequestId | Request Id: |
TroubleshootingLabelSendEmail | Send Information by Email |
TroubleshootingLabelSource | Reason: |
TroubleshootingLabelViewRequestDetails | View Request Details |
TroubleshootingLinkText | Troubleshooting Information |
Authentication Gate strings
The following table shows the Authentication Gate strings that can be customized:
Authentication Gate string name | Default value |
---|---|
OTPEmailRegistraionEmailTextboxLabel | Email address: |
OTPEmailRegistrationEmailRequiredErrorMessage | The email address field cannot be empty. |
OTPEmailRegistrationFooterReadOnly | To update your email address, follow the process defined by your organization or call your help desk. |
OTPEmailRegistrationFooterReadWrite | The email address is stored by your organization in Forefront Identity Manager. |
OTPEmailRegistrationGateTitle | Email Address Verification |
OTPEmailRegistrationHeaderReadOnly | If you ever need to reset your password, a verification security code will be sent to your email. If the email address shown below is not correct, you will need to update this in order to use self-service password reset. |
OTPEmailRegistrationHeaderReadWrite | Enter your email address below. If you ever need to reset your password, a verification code will be sent to your email. |
OTPEmailResetGateTitle | Verify Your Identity: Email |
OTPEmailResetHeader | Enter your security code below. A security code was sent to the email address registered with this organization. |
OTPRegularExpressionErrorMessage | The specified value does not match the expected format. |
OTPResetOneTimePasswordRequiredErrorMessage | The security code field cannot be empty. |
OTPResetVerificationLabel | Security Code: |
OTPSmsRegistrationFooterReadOnly | To update your mobile phone number, follow the process defined by your organization or call your help desk. |
OTPSmsRegistrationFooterReadWrite | The mobile phone number is stored by your organization in Forefront Identity Manager. |
OTPSmsRegistrationGateTitle | Mobile Phone Verification |
OTPSmsRegistrationHeaderReadOnly | If you ever need to reset your password, a verification security code will be sent to your mobile phone. If the mobile phone number shown below is not correct, you will need to update this in order to use self-service password reset. |
OTPSmsRegistrationHeaderReadWrite | Enter your mobile phone number below. If you ever need to reset your password, a verification code will be sent to your mobile phone. |
OTPSmsRegistrationMobilePhoneRequiredErrorMessage | The mobile phone number field cannot be empty. |
OTPSmsRegistrationSMSTextBoxLabel | Mobile Phone: |
OTPSmsResetGateTitle | Verify Your Identity: Mobile Phone |
OTPSmsResetHeader | Enter your security code below. A security code was sent to the mobile phone registered with this organization. |
PasswordGateDescriptionText | Enter your current password below, then click 'Next'. |
PasswordGateErrorMessagePasswordRequired | Enter your current password. |
PasswordGateGateTitle | Your Current Password |
PasswordGatePasswordLabelText | Password: |
PasswordGateUsernameTextFormat | <i> (logged in as: <b>{0}</b> ) </i> |
QAGateErrorNotEnoughQuestionsAnswered | You must answer at least {0} questions. |
QAGateIncorrectAnswer | Your answers are not correct. |
QAGatePrivacyNotice | The responses you provide are stored by your organization in Forefront Identity Manager. |
QAGateRegistrationNumberOfQuestionsExplanation_Format | You must answer at least {0} questions to register. |
QAGateRegistrationOneOrMoreAnswersFailedValidation | One or more answers do not comply with policy. |
QAGateRegistrationThisAnswerValidationFailed | This answer does not comply with policy. |
QAGateRegistrationTitle | Register Your Answers |
QAGateResetNumberOfQuestionsExplanation_Format | You must answer {0} of the following {1} questions. |
QAGateResetTitle | Verify Your Identity: Submit Your Answers |
Custom logo banners
The default banner on the portal pages can be customized for your organization.
To customize the logo banner:
Create your custom banners and save them as .png files. The files should meet the following recommendations:
- Size: 490 x 50 pixels.
- Bit depth: 32 pixels.
Copy the files to the Customizations folder in each portal that you want to customize.
Create a Style.css file in each folder. Point the file to the Customizations folder for the portal and the new logo. You can change the logo name as needed, such as
/Customizations/contosologo.png
. The CSS should look like the following code:.title-block{background:url(../Customizations/fimlogo.png) no-repeat scroll 0 0 transparent;}
If you're using Internet Explorer 6.0, you must provide an alternate non-transparent logo, and add the following code to Style.css:
.ie6 .title-block{background-image:url(../Customizations/fimlogo-ie6.png);}
The CSS should look like the following code:
.title-block{background:url(../Customizations/contosologo.png) no-repeat scroll 0 0 transparent;}
Custom images for smartphones
You can customize the logo image for smartphones.
To customize an image for a smartphone:
Create your images and save them as .png files. The files should meet the following recommendations:
- Size: 190 X 50 pixels.
- Bit depth: 32 pixels.
Copy the files to the Customizations folder in each portal that you want to customize.
Create a Style.css file in each folder. Point the file to the Customizations folder for the portal and the new logo. You can change the logo name as needed, such as
/Customizations/contosologo.png
. The CSS should look like the following code:@media only screen and (max-width: 480px) { .title-block { background: url("path_to_image/imagename.png") no-repeat scroll 0 0 transparent; } }
Custom style sheets
You can modify the layout and style of the password portals by using a customized cascading style sheet (CSS).
To use a customized CSS:
Create your customized CSS files and save them as Style.css.
Copy the files to the Customizations folder in each portal that you want to customize.
The following code is a basic example of a Style.css file:
body
{
font: 15px Algerian;
color: \#303030;
background: white;
}
.pad
{
padding: 30px;
padding-top: 50px;
background: white;
}
.backgroundWhite
{
border: \#e9e9e9 2px solid;
} .
title-block
{
background:url(../Customizations/contosologo.png) no-repeat scroll 0 0 transparent;
}
Important
For MIM to recognize any customized changes, you must restart IIS by running iisreset
.
The following code is a more advanced example of a Style.css file. This file provides information that's specific to a smartphone or an Apple iPad for displaying the portals on these devices.
/****************
BASE
*****************/
body {
font-size: 14px; /*Customizeable- Body Font Size */
background-color: #ced5ec; /*Customizeable- Backgound Color behind the product */
}
body, button, input, select, textarea {
font-family: Segoe UI, Arial, Verdana, Sans-Serif, Helvetica; /*Customizeable- Body Font Family */
color: #595959; /*Customizeable- Body Font Color */
}
/****************
LINKS
*****************/
a { color: #396faf; text-decoration: none; } /*Customizeable- Link Color and Underline */
a:visited { color: #396faf; text-decoration: none; } /*Customizeable- After Link is clicked color and underline */
a:hover { color: #6486ae; text-decoration: none; } /*Customizeable- Hover mouse over Link color and underline */
a:focus { outline: thin dotted; } /*Customizeable- Keyboard event to Link and Link is in focus outline*/
a:hover, a:active { outline: 0; } /*Customizeable- Hover and Active Link outline */
/****************
Typography
*****************/
hr { border-top: 1px solid #acd9ec; } /*Customizeable- Horizontal Rule Color Above the Footer */
/****************
Layout
*****************/
#wrapper {
background: url(../images/bg-top-slice.png) repeat-x 0 0; /*Customizeable-remove this line to remove top gradient */
}
#container {
background: url(../images/bg-bottom-slice.png) repeat-x 100% 100% transparent; /*Customizeable-remove this line to remove bottom gradient */
}
.title-block {
background: url("../images/fimlogo.png") no-repeat scroll 0 0 transparent; /*Customizeable- Logo must be 600px or less in width. Logo must be 50px or less in height. */
border-bottom: 2px solid #acd9ec;/*Customizeable- 2px border color under logo */
}
.ie6 .title-block {
background-image: url(../images/fimlogo-ie6.png); /*Customizeable- Can make a non-transparent image for IE6 only */
}
h2 {
color: #578e4c; /*Customizeable- h2 page header color */
}
h3 {
color: #999; /*Customizeable- h3 page header color */
}
input[type=text]:focus, input[type=password]:focus {
border: #82bd3b 2px solid; /*Customizeable- Highlight color around textbox when cursor is inside */
}
.chromeButton, .chromeButton:visited {
background-color: #333; /*Customizeable- Color of button */
color: #fff; /*Customizeable- Color of text on the button */
border: 1px solid #666; /*Customizeable- Border color of button */
}
.chromeButton:hover {
background-color: #666; /*Customizeable- Hover color of button */
border: 1px solid #999; /*Customizeable- Hover border color of button */
}
.qcol /*Style from QAgate.css */ {
color: #7a7a7a; /*Customizeable- Font color of Q&A container */
background-color:#e6e7e9; /*Customizeable- Background color of Q&A container */
}
/****************
Media Queries
*****************/
/* Smartphones ----------- */
@media only screen and (max-width: 480px) {
body {
font-size:12px; /*Customizeable- Body Font Size for devices */
}
.title-block {
background: url("../images/fim-logo-portrait.png") no-repeat scroll 0 0 transparent; /*Customizeable- Logo must be 190px (landscape) or less in width. Logo must be 50px or less in height. */
}
h2, h3 {
font-size:14px; /*Customizeable- H2 and H3 Heading Size for devices */
}
}
/* iPads (landscape) ----------- */
@media only screen and (min-device-width : 768px) and
(max-device-width : 1024px) and
(orientation : landscape)
{
}
/* iPads (portrait) ----------- */
@media only screen and (min-device-width : 768px) and
(max-device-width : 1024px) and
(orientation : portrait)
{
}
Common customization issues
The following table lists common issues that can occur when upgrading the FIM Service and MIM Portal.
Issue | Resolution |
---|---|
I made a string customization, but it wasn’t reflected in the UI. | String customizations in strings.resources require IIS restart by running iisreset . |
After making a strings.resources change, I don’t see any of my string changes. | Strings.resources format is probably malformed, and could be ignored by the portal. Check the event log under Windows Logs > Application and Services Logs > Forefront Identity Manager. |
The first time that I added Style.css, I didn't see my style changes in the portal. | The first time that you introduce a Style.css file, you need to run iisreset . |
New styles are added or modified in Style.css, but changes are not seen in the browser. | Clear the browser cache and refresh the page. Check the CSS syntax. |
I directly changed the contents of the CSS folder <path_to_sspr_portal>\css\*.css or the banner logo <path_to_sspr_portal>\images\fimlogo.png . I lost these changes on upgrade. |
Users are recommended to not directly change these files. Only use the Customizations folder to provide a banner logo, and only make CSS style customizations in Style.css. The Customizations folder is deliberately not overwritten by major upgrades. Don't use tools like ILSpy and Reflector to change strings in the portal assemblies. Use strings.resources to override default strings. The assemblies are replaced on upgrade. |
Banner logo is not displayed in the portals. I still see the FIM logo. | The image name/path in Style.css is not valid, or the browser cache was not cleared. |
Banner logo looks ugly in Internet Explorer 6. | Provide a non-transparent image for Internet Explorer 6 with a corresponding style for the image in style.css. |