1、背景:asp.net程序
web.config中
<identity impersonate="true" userName="localhost/agsadminuser" password="xxxx" />
用户agsadminuser属于agsusers/agsadmin/Administrators组
2、但以下代码在却在agsConn.Connect();出现错误:Server could not authenticate the supplied identity
经过调试,idName/idPassword/Domain均正确
查询http://support.esri.com/index.cfm?fa=search.results,还是没有解决。
ESRI.ArcGIS.ADF.Identity id = new ESRI.ArcGIS.ADF.Identity();
id.UserName = "agsadminuser";
id.Password = "xxxx";
id.Domain = "localhost";
string agsServerName = "localhost";
ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsConn;
agsConn = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(agsServerName, id);
agsConn.Connect();
3、将以上代码注释,改用GISServerConnectionClass,以下代码可以顺利执行:
ESRI.ArcGIS.Server.IGISServerConnection agsConn = new ESRI.ArcGIS.Server.GISServerConnectionClass();
agsConn.Connect("localhost");
4、回到原来代码,将
agsConn = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(agsServerName, id);
改为
agsConn = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(agsServerName, null);
可以顺利执行。
本文方法仅供参考。反思:如确实遇到此类错误,可以采用identity impersonate方法解决。