一、设置默认登录的域名
原图界面:
原登录界面是需要输入完整的“域\用户名”(例如:ZZ\test),这样对用户的使用体验不是很好。所以这里我们需要改成只输入“用户名”(例如:test)即可正常登录。
实现思路:在表单提交前将提前设置好的默认“域名”与“用户名”组合成完整的“域\用户名”后在提交。
1、修改\RDWeb\Pages\zh-CN\login.aspx
这里将原标签中的"域\\用户名"改成“用户名”
const string L_DomainUserNameLabel_Text = "域\\用户名:";
改成
const string L_DomainUserNameLabel_Text = "用户名:";
2、在\RDWeb\Pages\webscripts-domain.js文件中设置默认域名
这里原来是判断用户是否有按照"域\用户名"格式输入,如果没有,则会报错。所以我们需要在判断条件的后面加上一个else分支根据默认“域名”与“用户名”组合成标准的"域\用户名"
修改后的代码如下:
if ( -1 != strDomainUserName.indexOf("\\") )
{
strDomainName = strDomainUserName.substring( 0, strDomainUserName.indexOf("\\") );
}
else if ( -1 != strDomainUserName.indexOf("@") )
{
strDomainName = strDomainUserName.substring( strDomainUserName.indexOf("@") + 1, strDomainUserName.length );
}
else
{
//设置默认域名
strDomainName = "ZZ";
//组合完整的用户名(域\用户名)
strDomainUserName = strDomainName + "\\" + strDomainUserName;
}
3、在\RDWeb\Pages\renderscripts.js文件中设置默认域名
3.1在renderscripts.js文件的首行添加以下代码(默认域名):
添加代码如下(默认域名):
var strDomainName = "ZZ";
3.2在renderscripts.js文件添加将“域名”与“用户名”组合成完整“域\用户名”的代码
添加代码如下(组合域名与用户名):
if ( strDomainUserName.toLowerCase() == strLoggedOnDomainUserName.toLowerCase()) {
if ( ( -1 == strDomainUserName.indexOf("\\") ) && ( -1 == strDomainUserName.indexOf("@") ) )
{
strDomainUserName = strDomainName+"\\"+strDomainUserName;
}
二、设置远程桌面(RDP)登录用户
原图界面:
在浏览器不支持 或者 RemoteApp远程与连接不可用时,浏览器会下载一个包含远程连接参数的文件(*.rdp)。由于在默认的rdp文件中未设置Domain(域)与UserName(账号)参数所以会导致客户端登录时需要输入完整域\用户名,这样就影响使用体验。所以需要改一下。
实现思路就是在Rdweb服务器端设置Domain(域)与UserName(账号)rdp参数,然后在返回给浏览器。最后浏览器通过Bo对象将返回的rdp参数,下载成*.rdp文件。
1、修改\RDWeb\Pages\zh-CN\Default.aspx文件
1.1在Default.aspx文件添加strDomainName变量(用于指定默认域名)
添加的代码如下(设置默认域名):
public string strDomainName = "ZZ"; //默认域名(当用户未指定域名时使用)
1.2在Default.aspx文件添加Domain(域)与UserName(账号)rdp参数的代码
添加的代码如下(设置Domain(域)与UserName(账号)):
//设置rdp参数Domain与UserName
if((-1 == strDomainUserName.IndexOf("\\")) && (-1 == strDomainUserName.IndexOf("@")))
{
strAppFeed = strAppFeed.Insert(
strAppFeed.IndexOf("<![CDATA[") + 9,
"Domain%3As%3A" + strDomainName + "%0D%0AUserName%3As%3A" +
strDomainUserName + "%0D%0A");
}
else
{
strAppFeed = strAppFeed.Insert(strAppFeed.IndexOf("<![CDATA[") + 9,
"UserName%3As%3A" + strDomainUserName + "%0D%0A");
}
2、修改\RDWeb\Pages\Site.xsl文件
2.1新增将服务器返回的rdp参数,下载成*.rdp文件的代码
新增代码如下:
//将服务器返回的rdp参数转换成rdp文件并下载至本地
//strRdpFileName:rdp文件名称(保存至本地的rdp文件名称)
//strRdpFileContents:rdp参数(输入:由服务端返回)
function downloadRDP(strRdpFileName,strRdpFileContents) {
var eleLink = document.createElement('a');
eleLink.download = strRdpFileName;
eleLink.style.display = 'none';
strRdpFileContents = unescape(strRdpFileContents);
var blob = new Blob([strRdpFileContents]);
eleLink.href = URL.createObjectURL(blob);
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
}
2.2修改触发下载*.rdp文件的代码(也就是修改goRDP函数)
修改后goRDP函数的代码如下:
function goRDP(pid, rdpContents, url) {
var arr = url.split("/");
var strRdpFileName = arr[arr.length-1];
if (ActiveXMode) {
try {
goRDPAx(pid, rdpContents);
} catch (e) {
//location.href = url;
downloadRDP(strRdpFileName,rdpContents);
}
}
else {
//location.href = url;
downloadRDP(strRdpFileName,rdpContents);
}
}