I want to develop a webGIS using ArcGIS silverlight api 3.1 . I'm using ArcGIS for server 10.2 , sql server 2012 .The Database is registered in ArcGIS Server. The webGIS must have an editing capability . I have many users that have different permissions for editing. Some of the users only have select permission and some of them have insert,update,delete permissions. I created a version named public with permission type of "Public" . This version is child of default version. users edits saved in Public version and the administrator reconcile these edits. The problems are listed in the below questions .

Is it possible to use multi versions in an ArcGIS server feature service?

How can i set the permission to the users in webGIS?

In other word is it possible to use SQL server users to log in for editing in webGIS ?

if the answer is yes, can you recommend a sample code or another resource for this?

The user should see his/her edit and another users can't see these edits.

How can i set the permission?


For apps I've been involved with, we use secured Feature Services (with the accounts used to secure the services coming from Active Directory - these are different than the accounts used to secure the ArcSDE layers in the geodatabase), in conjunction with a Proxy application, to control access to editable layers. An alternative to the Proxy application is to use the Identity Manager in the application.

But I don't have any explicit knowledge of controlling access to versions, though I'd guess that the version is determined by virtue of what version you created the layer from in the map document that is the basis of the feature service.

So I'll forge ahead anyway at the risk of not actually answering your question.

A proxy application is a configurable Java/PHP/ASP.NET web application, sample apps available from ESRI (how to use - javascript, Silverlight), that brokers access between your app and the actual services, with the option to map the credentials used for access to the secured services. In your app, where you define the layers or other services to connect to, instead of just providing the service URL, you provide the proxy URL as well. You'll see what I mean in the API docs for the relevant classes.

The ESRI example proxy apps work so that depending on what service is being requested, it is looked up in the config to determine the (service) credentials to use, which are used to get a short-lived token from your server's token service. The proxy app caches tokens for the duration of their short life.

The advantage of the above approach is that the user never encounters a login prompt in the app, but the limitation is that the config is set up to always use a single saccount to connect to the service. Identity Manager can get you the first, without the limitation of the second. But another use of the proxy, as the above links describe, is to use POST instead of GET, so you don't run into a URL length limit.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.