为做了面向互联网部署(IFD)的Dynamics 365定制登录账号格式

时间:2023-03-08 22:39:18

我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复354或者20190817可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

之前我的博文 做了面向互联网部署的Dynamics 365 CE更改AD FS的登录页面 讲了一些AD FS登录页面定制,有的朋友问我输入用户名的时候可以不输入域名吗?比如我之前输入的用户名是 crmadmin@luoyong.me ,我可以只输入 crmadmin 作为用户名吗?当然是可以的,我这里根据官方文档 Advanced Customization of AD FS Sign-in Pages 进行定制。

因为我之前做了主题定制,我这里就直接修改定制的主题。首先需要将主题导出,使用类似如下命令:

Export-AdfsWebTheme –Name LuoYongTheme –DirectoryPath C:\LuoYongTheme

为做了面向互联网部署(IFD)的Dynamics 365定制登录账号格式

然后修改导出的文件夹中的 script文件夹下面的 onload.js ,增加如下代码:

if (typeof Login != 'undefined') {
Login.submitLoginRequest = function () {
var u = new InputUtil();
var e = new LoginErrors();
var userName = document.getElementById(Login.userNameInput);
var password = document.getElementById(Login.passwordInput);
if (userName.value && !userName.value.match('[@\\\\]')) {
var userNameValue = userName.value + '@luoyong.me';
document.forms['loginForm'].UserName.value = userNameValue;
} if (!userName.value) {
u.setError(userName, e.userNameFormatError);
return false;
} if (!password.value) {
u.setError(password, e.passwordEmpty);
return false;
}
document.forms['loginForm'].submit();
return false;
};
}

再使用PowerShell命令执行如下代码:

Set-AdfsWebTheme -TargetName LuoYongTheme -OnLoadScriptPath "C:\LuoYongTheme\script\onload.js"

当然还需要使用Set-AdfsWebConfig设置这个主题为默认主题,因为我前面的博文已经设置为了默认主题就并不需要了。AD FS服务也不需要重启,立即生效了。