我有一个C#的winforms应用程序需要访问控制某些形式。这意味着,应用程序在系统启动时以相同(默认)用户运行,但某些表单需要进行保护,以便只有特定的Windows用户在使用用户名和密码标识自己后才能访问附加功能。对于那一步,应该使用Windows身份验证。多用户登录到winforms应用程序
现在棘手的部分。虽然应用程序是在“普通”用户下启动的,但我希望超级用户在不重新启动entiere应用程序的情况下“登录”到特殊表单中。
我现在的问题是。这是否可能(即使用管理员的凭据创建一个线程)。或者我需要为此设置另一个AppDomain?
请给我一个提示水灰比正在运行的应用程序的用户可以以某种方式改变。
谢谢。
编辑
我代替管理员通过“特定用户”,因为特权用户可能只是由安装的配置授予访问特殊功能的另一个普通用户。
就通信而言,AppDomain是否已经通过远程处理与主机进程通信?或者至少这是.net 2.0的情况。问题是,有什么方法可以传递一些数据..? – dexter 2011-01-12 19:59:12
是的。它们都在同一个进程中,但与父AppDomain隔离。因此,通过不同进程传递的相同限制适用于在AppDomain之间传递数据。幸运的是,现在有更多选择:.NET 3.5添加了命名管道,现在4.0支持内存映射文件。 – 2011-02-01 18:38:16
一个典型的场景就像Windows任务管理器(在Vista下),当您单击“显示所有任务”时,它会使用管理员证书/证据在新流程中实际重新启动,然后终止非管理员应用程序。 – 2011-02-01 18:40:17