簡體   English   中英

WCF wsdualhttpbinding客戶端不提升

[英]WCF wsdualhttpbinding client without elevation

我已經創建了Windows服務(服務器)和使用WCF wsdualhttpbinding回調功能的WPF(客戶端)。 這兩款軟件之間的所有功能都可以正常運行,但是我遇到的問題是,客戶端需要提升為管理員權限才能運行(這是可以理解的,因為必須打開端口才能與服務器進行通信)

有什么方法可以配置客戶端在不提升的情況下工作? 還是創建一次永久連接,這樣就不需要一直提升客戶端?

我的想法和Google搜索用完了。

UPDATE

我找到了解決方案。 如果還有其他最佳做法,請糾正我!

我在運行netsh的客戶端應用程序中添加了“啟用”和“禁用”按鈕,以打開(或關閉)並保留端口。

啟用

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", @"http add urlacl url=http://+:" + PortNumber + @"/ user=DOMAIN\username");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

禁用

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", "http delete urlacl url=http://+:" + PortNumber + "/");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

我找到了解決方案。 如果還有其他最佳做法,請糾正我!

我在運行netsh的客戶端應用程序中添加了“啟用”和“禁用”按鈕,以打開(或關閉)並保留端口。

啟用

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", @"http add urlacl url=http://+:" + PortNumber + @"/ user=DOMAIN\username");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

禁用

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", "http delete urlacl url=http://+:" + PortNumber + "/");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

不幸的是,只有在使用管理權限運行時,您才能在Windows上打開端口。

http://msdn.microsoft.com/en-us/library/ms740548%28v=VS.85%29.aspx

要使用SOCK_RAW類型的套接字,需要管理權限。 運行使用原始套接字的Winsock應用程序的用戶必須是本地計算機上Administrators組的成員,否則原始套接字調用將失敗,錯誤代碼為WSAEACCES。 在Windows Vista和更高版本上,在創建套接字時會強制訪問原始套接字。 在Windows的早期版本中,在其他套接字操作期間會強制訪問原始套接字。

原始套接字提供了操作基礎傳輸的功能,因此它們可用於構成安全威脅的惡意目的。 因此,只有Administrators組的成員才能在Windows 2000及更高版本上創建SOCK_RAW類型的套接字。

編輯:如果您可以管理員身份訪問計算機,則可以使用netsh http://technet.microsoft.com/zh-cn/library/cc725935(v=ws.10).aspx允許某些用戶打開端口。

netsh http添加urlacl url = http://+:80/Uri user = DOMAIN \\ User listen = yes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM