小编Ch3*_*33f的帖子

使用 C# exe 修改不同 C# exe 的资源

解决了!见下文。

我有 2 个 C# 应用程序。应用程序 a 应该修改应用程序 b 的内部资源。应用程序 b 应该在执行时对其(修改后的)资源执行某些操作。

我怎样才能做到这一点?

这是我尝试过的:

public static void addFileToResources(string dest, string src)
{
    Assembly a_dest = Assembly.LoadFile(dest);

    using (Stream s_dest = a_dest.GetManifestResourceStream("Elevator.Properties.Resources.resources"))
    {
        using (ResourceWriter rw = new ResourceWriter(s_dest))
        {
            byte[] b_src = File.ReadAllBytes(src);
            rw.AddResource("target", b_src);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在EDIT上得到了一个System.ArgumentException, 因为 .net 资源似乎不可能:还有其他方法吗? 我想生成一个可执行的单个文件(即 application的 exe ),并且可以处理从 application 执行之前给出的数据(存储在 exe 中)。最好不必为了给它数据而实际编译。 为了使它更容易一些假设:The stream is readonly.System.Resources.ResourceWriter..ctor(Stream stream)



bab


  • a 总是在之前执行 b
  • a 只执行一次
  • 两个应用程序都是我写的 …

c# resources .net-assembly

5
推荐指数
1
解决办法
2668
查看次数

启动runas作为子进程并将密码写入stdin?

我正在尝试编写一个C#程序,它应该从windows调用runas工具并自动输入密码.

我尝试了什么:

Process runas = new Process();

runas.StartInfo.FileName = "runas";
runas.StartInfo.UseShellExecute = false;
runas.StartInfo.RedirectStandardInput = true;
runas.StartInfo.Arguments = "\"/user:domain\\username\" \"cmd.exe\"";

runas.Start();

StreamWriter stream = runas.StandardInput;
stream.WriteLine("our super secret password");
stream.Flush();

stream.Close();

runas.WaitForExit();
runas.Close();
Run Code Online (Sandbox Code Playgroud)


发生了什么:
我得到以下输出.

Please enter the password for "...":
Trying to execute cmd.exe as user "kfz\dummy"...
RUNAS-ERROR: cmd.exe could not be executed
1326: Authentication failed: unknown username or password.
Run Code Online (Sandbox Code Playgroud)

(由我在德语窗口翻译)

是的,我在quadrupel检查了密码和用户名.在命令行中手动输入所有内容都可以正常工作.

我尝试过的内容:
我尝试重定向输出并从中读取,但没有成功.
我尝试了不同的写入流的变体:

stream.Write("our super secret password");
stream.Write("our super secret password\n");
stream.Write("our super secret password\r\n");
Run Code Online (Sandbox Code Playgroud)

所有结果都是相同的行为.


我注意到: …

c# windows stdin runas

2
推荐指数
1
解决办法
5563
查看次数

在会话中存储密码哈希.好主意?

总结问题

在会话中存在或反对保存密码哈希的参数是什么?

理念

在登录时在会话中存储密码哈希(在数据库中),并在每次访问时根据数据库哈希对其进行验证,以便自动使密码更改的所有会话无效.

我的想法

这些是我到目前为止关于这个主题的想法.

  • 假设两个人合法地共享一个帐户,它(大多数时候)会阻止一种竞争条件,即在另一个登录时更改密码.混淆只会发生一次而不是两次.
  • 假设存在恶意攻击,如果及早发现,合法用户可以将攻击者踢出.

精读

  • 如果人员A在B人员更改密码后立即提交表格,则可能存在数据.
  • 假设恶意攻击,攻击者可以踢出合法用户.

中性

  • 没有真正的性能影响.(编辑:因为我出于其他原因加载了每个页面加载的用户信息.)
  • 安全问题几乎不存在.如果某人有权访问服务器,则访问具有所有哈希值的数据库的工作量与访问会话存储的工作量相当,后者具有登录用户的哈希值.

请回答和评论

我不想在这里开始主观讨论.我想收集(尽可能客观)该主题的利弊.我还没有考虑过什么?

编辑:

澄清:使所有会话无效(除了用于更改密码的会话)的想法来自于"如果一个人更改密码而没有告诉某些其他人有这样的原因,那么他们应该立即失去访问权限". ,假设没有恶意用户(这将是一个多么美妙的世界......).

php apache security session

0
推荐指数
1
解决办法
120
查看次数

标签 统计

c# ×2

.net-assembly ×1

apache ×1

php ×1

resources ×1

runas ×1

security ×1

session ×1

stdin ×1

windows ×1