我可以将凭据传递给Flex Viewer应用程序吗?

时间:2013-10-10 07:39:26

标签: flex authentication arcgis esri

我有一个使用表单身份验证(SimpleMembershipProvider)的ASP.Net(MVC)Web应用程序。我还有一个使用Flex构建器开发的Flex GIS Viewer应用程序。

我可以通过从我的网络应用程序(用c#编写)调用arcgis web方法GetToken(),并使用提供的用于进行地图服务调用的令牌(使用JavaScript)来连接到底层地图服务。我错误地认为我可以将令牌传递给Flex Viewer应用程序,或者至少在我连接后维护与地图服务的会话。

是否有某种方法可以将此令牌提供给Flex Viewer,以便用户不必提供两次凭据(Web应用程序和弹性查看器)?我可能在URL中思考,因为据我所知,Flex Viewer需要为每个地图服务调用提供一个令牌。

或者我完全走错了路?我的方法是使用JavaScript而不是flex,因为我可以使其工作,但我想避免重做Web查看器,如果我可以帮助它。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题......我最初的做法是错误的。无法将令牌作为查询参数传递给Flex Viewer应用程序。

解决方案是从Flex Viewer应用程序获取我的应用程序代理请求 - 我只是将proxy.config和proxy.ashx文件复制到我的应用程序的根目录。

用户首先通过Web应用程序进行身份验证(表单身份验证),然后加载指向Flex Viewer的链接。地图服务请求从Flex Viewer发送到我的Web应用程序(必须配置Flex Viewer和小部件以使用代理)。然后,在从ArcGIS动态请求令牌以附带原始地图服务请求之前,Web应用程序将检查用户是否已通过身份验证。