473,394 Members | 1,785 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Smart clients

I want to stream data from a server, the client is a smart client it I want
to be able to connect to a pc (eventually the pc it's been downloaded from).
The problem as you might expect is that the smart client doesn't have enough
permissions to open a socket, use remoting or even call a web service.
Anyone knows what to do ? (using caspol to loosen security works of course,
but it is not an option)
Nov 16 '05 #1
9 1663
One solution is to use an .msi file to increase permissions for a specific
public key. This article explains the process.
http://msdn.microsoft.com/library/de...ms11122002.asp

Regards,
Frank Hileman

check out VG.net: www.vgdotnet.com
Animated vector graphics system
Integrated Visual Studio .NET graphics editor

"MaSTeR" <so***@nospam.com> wrote in message
news:30*************@uni-berlin.de...
I want to stream data from a server, the client is a smart client it I want
to be able to connect to a pc (eventually the pc it's been downloaded
from).
The problem as you might expect is that the smart client doesn't have
enough
permissions to open a socket, use remoting or even call a web service.
Anyone knows what to do ? (using caspol to loosen security works of
course,
but it is not an option)

Nov 16 '05 #2
MaSTeR,

Actually, you should have permissions to call a web service (or open a
connection) to the machine that the client was downloaded from.

Also, with .NET 2.0, you should be able to install a security policy
which would allow more network access through ClickOnce.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"MaSTeR" <so***@nospam.com> wrote in message
news:30*************@uni-berlin.de...
I want to stream data from a server, the client is a smart client it I want
to be able to connect to a pc (eventually the pc it's been downloaded
from).
The problem as you might expect is that the smart client doesn't have
enough
permissions to open a socket, use remoting or even call a web service.
Anyone knows what to do ? (using caspol to loosen security works of
course,
but it is not an option)

Nov 16 '05 #3
Of course, asking your clients to "please run this MSI" is not really any different from asking "please run this unmanaged .exe". You are asking them to execute arbitrary native code that runs outside of the auspices of CAS and so is, in of itself, a ricky practice for your users.

However, the problem is of course "what do you do instead?" And that has no easy answers if you need your client to elevate the permissions for your code to enable your application to run. There are solutions in managed networks (like domains) where security policy can be be controlled via the enterprise security policy level and distributes via some kind of file distribution system (Group Policy Objects, or system management software). But for non-centrally controlled networks the problem is harder.

Writing software that doesn't require elevated permissions is the best solution, just not always practical. At the moment the only other solution is to ask the user to manually set up policy changes (error prone) or, as you say, ask them to run an MSI.

Regards

Richard Blewett - DevelopMentor
http://www.dotnetconsult.co.uk/weblog
http://www.dotnetconsult.co.uk

One solution is to use an .msi file to increase permissions for a specific
public key. This article explains the process.
http://msdn.microsoft.com/library/de...ms11122002.asp

Regards,
Frank Hileman

check out VG.net: www.vgdotnet.com
Animated vector graphics system
Integrated Visual Studio .NET graphics editor
Nov 16 '05 #4
Na that's not feasible. I want to tun my smart client every where, even on
non-admin accounts that can't change permissioning.
I do not want to install anything or forc the user to change settings.

I achieved that very well with Java applets, where the VM tighten you inside
the sandbox that allows you anyway to open a socket to the server you've
downloaded the applet from.

Thanks for replying.
Filippo

"Frank Hileman" <fr******@no.spamming.prodigesoftware.com> wrote in message
news:e7**************@tk2msftngp13.phx.gbl...
One solution is to use an .msi file to increase permissions for a specific
public key. This article explains the process.
http://msdn.microsoft.com/library/de...ms11122002.asp
Regards,
Frank Hileman

check out VG.net: www.vgdotnet.com
Animated vector graphics system
Integrated Visual Studio .NET graphics editor

"MaSTeR" <so***@nospam.com> wrote in message
news:30*************@uni-berlin.de...
I want to stream data from a server, the client is a smart client it I want to be able to connect to a pc (eventually the pc it's been downloaded
from).
The problem as you might expect is that the smart client doesn't have
enough
permissions to open a socket, use remoting or even call a web service.
Anyone knows what to do ? (using caspol to loosen security works of
course,
but it is not an option)


Nov 16 '05 #5
> Of course, asking your clients to "please run this MSI" is not really any
different from asking "please run this unmanaged .exe". You are asking them
to execute arbitrary native code that runs outside of the auspices of CAS
and so is, in of itself, a ricky practice for your users.
Correct.
However, the problem is of course "what do you do instead?" And that has no easy answers if you need your client to elevate the permissions for your
code to enable your application to run. There are solutions in managed
networks (like domains) where security policy can be be controlled via the
enterprise security policy level and distributes via some kind of file
distribution system (Group Policy Objects, or system management software).
But for non-centrally controlled networks the problem is harder.
Writing software that doesn't require elevated permissions is the best solution, just not always practical. At the moment the only other solution
is to ask the user to manually set up policy changes (error prone) or, as
you say, ask them to run an MSI.

As I said that's exactly the point, I am just surprised to learn this. Smart
client borned to achieve zero deployment but as a matter of fact you can't
create nothing more serious than a calculator ;)

I wonder if .Net 2.0 will allow connection from and to the server "they
belong to" as Java does.
Nov 16 '05 #6

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote in
message news:%2****************@tk2msftngp13.phx.gbl...
MaSTeR,

Actually, you should have permissions to call a web service (or open a
connection) to the machine that the client was downloaded from.
Indeed, that I know.
Also, with .NET 2.0, you should be able to install a security policy
which would allow more network access through ClickOnce.

Hope this helps.

This is really awkward. I went at Microsoft for a smart client demonstration
and they told me you don't need to change any setting to call a web service.
In my experience I reckon this is false, but I might be doing something
wrong.
Nov 16 '05 #7
You indicated in your initial post that you were not able to connect to
the host. The default CAS policy allows you to do this, but it could be
that your policy is different. Have you used the .NET administration tool
to check the policy?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"MaSTeR" <so***@nospam.com> wrote in message
news:30*************@uni-berlin.de...

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote
in
message news:%2****************@tk2msftngp13.phx.gbl...
MaSTeR,

Actually, you should have permissions to call a web service (or open
a
connection) to the machine that the client was downloaded from.

Indeed, that I know.
Also, with .NET 2.0, you should be able to install a security policy
which would allow more network access through ClickOnce.

Hope this helps.

This is really awkward. I went at Microsoft for a smart client
demonstration
and they told me you don't need to change any setting to call a web
service.
In my experience I reckon this is false, but I might be doing something
wrong.

Nov 16 '05 #8
"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote:
Actually, you should have permissions to call a web service (or open
a connection) to the machine that the client was downloaded from.

"MaSTeR" <so***@nospam.com> replied:
This is really awkward. I went at Microsoft for a smart client
demonstration
and they told me you don't need to change any setting to call a web
service.
In my experience I reckon this is false, but I might be doing something
wrong.


This does work, but there are a couple of gotchas:

First, you can connect to a web service, but you cannot open any arbitrary
connection back. If you evaluate the permission set granted to an executable
in the Internet zone with the standard .NET Framework security settings in
place, you'll see that it has the Web Access permission but it does *not*
have the Socket Access permission.

So Nicholas isn't quite right - while he's correct to say that you will have
permissions to call a web service, he is wrong to suggest that you will have
permission to open a connection. It's more restrictive than that - you
won't be able to use a socket to connect back to the home machine, you'll
only be able to open an HTTP or HTTPS connection. (Of course that uses a
socket under the covers, but you won't be able to use the Socket class
directly.)

Second, you need to get the URL exactly right when connecting back. The way
the Web Access permission gets set up is that you have permission to connect
using HTTP or HTTPS back to your home server but *only* if you use the same
name for that server that you were downloaded from.

For example, I've got a little test harness running on my machine right now.
The smart client is written to use the fully qualified server name when
invoking the web service. If I launch the client using a URL with the fully
qualified server name, it is able to access the web service on the server.
But if I just use the local name, it doesn't work. In other words, because
the client is accessing the web service with:

http://mymachine.mydomain/App/Service.asmx

it only works if I launch the EXE like so:

http://mymachine.mydomain/App/SmartClient.exe

This works because when launched like this, the app's Web Access permission
looks like this:

(https|http)://mymachine\.mydomain/.*

If I try this:

http://mymachine/App/SmartClient.exe

then although it's pointing at the exact same machine, the attempt to use
the web service fails. That's because the Web Access permission now looks
like this:

(https|http)://mymachine/.*

but the client is still trying to use this:

http://mymachine.mydomain/App/Service.asmx
So in summary, you definitely can connect back to your home web server via
HTTP (but not using raw sockets), but you have to make sure you do so using
a URL that is consistent with the one used to launch your application in the
first place.
--
Ian Griffiths - http://www.interact-sw.co.uk/iangblog/
DevelopMentor - http://www.develop.com/
Nov 16 '05 #9
Thank you a million times !
That worked !
Nov 16 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: André Almeida Maldonado | last post by:
Hey Guys... I need to create a smart client to use the clients printer, but I don't know how to do it. Can anyonepost a link or an article that explains how to create smart clients?? Thank´s
2
by: Martin | last post by:
Hi, Can anybody please tell me if it is possible to deploy a smart client via no touch deploment to a macintosh, and if possible point me to documentation about this. Or is no touch deploy...
3
by: Marc Gravell | last post by:
Kind of an open question on best-practice for smart-client design. I'd really appreciate anyones views (preferably with reasoning, but I'll take what I get...). Or if anybody has any useful links...
2
by: Jeff | last post by:
Please note this is NOT a rant or complaint! And yes, I'm over-simplifying, but intentionally. Here goes... With ASP.NET Web applications I like that I can access data from anywhere without...
1
by: HM | last post by:
Hi, I have an existing web application in ASP/VB which uses OCX controls. I want to replace them with a Smart client solution, but I do not want to change the whole application at the first go....
8
by: Axter | last post by:
I normally use a program call Doxygen to document my source code.(http://www.stack.nl/~dimitri/doxygen) This method works great for small and medium size projects, and you can get good...
3
by: jack | last post by:
HI all im have heard little of smart client and wanted to implement it .. is there any one who could help me with some example or some explanation of smart client please . Thanks for replying me.
10
by: Pieter Coucke | last post by:
Hi, What's in general the most performant for a VB.NET Windows Forms (2.0) application: - a fat client (everything one the client, the server hosts only the database) - a smart client (an...
21
by: Raj | last post by:
Hi, We just executed a project with Python using TG. The feedback was to use more python like programming rather than C style code executed in Python. The feedback is from a Python purist and...
54
by: Boris | last post by:
I had a 3 hours meeting today with some fellow programmers that are partly not convinced about using smart pointers in C++. Their main concern is a possible performance impact. I've been explaining...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.