473,804 Members | 2,141 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 1683
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.c om> 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.co m
"MaSTeR" <so***@nospam.c om> 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.sp amming.prodiges oftware.com> wrote in message
news:e7******** ******@tk2msftn gp13.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.c om> 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.c om> wrote in
message news:%2******** ********@tk2msf tngp13.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.co m

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

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote
in
message news:%2******** ********@tk2msf tngp13.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.c om> 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.c om> 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\.mydo main/.*

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
1135
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
1138
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 and smart clients limited to ms operating systems with the dot net framework on. many thanks in advance.
3
2665
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 on the subject? (and yes, I have already googled it at length, but still no strong decision) ============= After a long stint of pure-desktop / pure-server applications, I'm currently working on a number of smart-client projects in C# using...
2
2406
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 installing anything on the client (but I hate HTML and markup in general and it's limitations, the request/response model, state management, etc). AFAIK, Smart apps or smart clients or whatever we call them are simply variations of Web applications...
1
2436
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. First I want to change my Local OCX control and replace it with a smart client. Is there any way the smart client can be called form a web application? Also please suggest me a good site where I can see some examples and build a smart client...
8
5158
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 documentation like the following: http://axter.com/smartptr Now I'm on a client site, and I'm trying to create the same type of documentation on a very large project. I ran the Doxygen program, and it ran for over 16 hours, before I had
3
326
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
2075
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 application on the client, that communicates with an application on the server via Webservices/Remoting/..) I would somehow think a smart client, but would just like to have the
21
1924
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 for some reasons we cannot solicity his help. So we'd like to do is to scrub through the codebase and identify places where the codebase needs improvement, both from styling as well as design. Is there any website that can provide me with...
54
12034
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 the advantages of smart pointers endlessly (which are currently used in all our C++ software; we use the Boost smart pointers) as I'm seriously concerned that there is a shift to raw pointers. We are not developing system software but rather...
0
9594
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10600
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10350
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10096
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9174
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7638
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5673
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3834
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3002
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.