问题描述
如果没有作为参数传递的terminalNumber,我想访问网络中远程PC的RegistryKeys。
public LoginEntity(string ipadress,string username,string password,string terminalNumber = "")
{
this.Ipadress = ipadress;
this.Username = username;
this.Password = password;
if (terminalNumber == "")
{
try
{
RegistryKey rKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine,Ipadress,RegistryView.Registry64);
rKey = rKey.OpenSubKey(@"SOFTWARE\Test",RegistryKeyPermissionCheck.ReadWriteSubTree);
var key = rKey.GetValue("terminalNumber","NOTFOUND");
if (key is string)
{
if ((string)key != "NOTFOUND")
this.TerminalNumber = (string)key;
}
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine("UnauthorizedException: Calling TerminalNumber from Remote Registry Keys");
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine("IOException: Remote PC not available");
}
}
else
this.TerminalNumber = terminalNumber;
}
出于安全原因,此示例中的子项称为“测试”。
但是在
RegistryKey rKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64);
该应用程序引发 UnauthorizedAccessException 。
我做了什么:
*任务调用位于我的WPF应用程序的MainWindow()-构造函数中
Task.Run(() =>
{
List<LoginEntity> loginUser = Utility.ReadLoginDataFromCsv(loginUserPath);
this.dispatcher.Invoke(() =>
{
Listview.ItemsSource = loginUser;
lblUserLoading.Content = "";
});
});
public static List<LoginEntity> ReadLoginDataFromCsv(string path,bool ignoreFirstLine = false)
{
List<LoginEntity> list = new List<LoginEntity>();
var lines = File.ReadAllLines(path,Encoding.UTF8);
if (ignoreFirstLine)
lines = lines
.Skip(1)
.ToArray();
foreach (string line in lines)
{
var rowData = line.Split(';');
LoginEntity le = new LoginEntity(rowData[0],rowData[1],rowData[2],rowData[3]);
if (le.Ipadress != "" && le.Username != "" && le.Password != "")
list.Add(le);
}
return list;
}
有人知道我为什么会得到UnAuthorizedException以及如何摆脱它吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)