小编Mat*_*att的帖子

Outlook 2010 Com插件 - NewExplorer永远不会触发

出于某种原因,在我的应用程序中,我的FolderSwitch在使用应用程序打开的主资源管理器上运行,但NewExplorer事件从未触发,因此显然FolderSwitch事件不会在新的资源管理器上触发.

我无法弄清楚为什么事件不会发生.

private List<_Outlook.Explorer> ListOfExplorerWindows = new List<_Outlook.Explorer> { };
private _Outlook.Application Application;

public void OnConnection(object Application, Extensibility.ext_ConnectMode ConnectMode, object AddInInst, ref Array custom)
{
    this.Application = (_Outlook.Application)Application;
}

public void OnStartupComplete(ref Array custom)
{
    _Outlook.Explorer Explorer = this.Application.ActiveExplorer();
    Explorer.FolderSwitch += new _Outlook.ExplorerEvents_10_FolderSwitchEventHandler(Explorer_FolderSwitch);
    ListOfExplorerWindows.Add(Explorer);

    this.Application.Explorers.NewExplorer += new _Outlook.ExplorersEvents_NewExplorerEventHandler(Explorers_NewExplorer);
}

private void Explorers_NewExplorer(_Outlook.Explorer Explorer)
{
    Explorer.FolderSwitch += new _Outlook.ExplorerEvents_10_FolderSwitchEventHandler(Explorer_FolderSwitch);
    ListOfExplorerWindows.Add(Explorer);
}
Run Code Online (Sandbox Code Playgroud)

c# outlook add-in

4
推荐指数
1
解决办法
2335
查看次数

将AspNet Core添加到标准Dotnet Core控制台应用程序

我有一个现有的Dotnet Core 2.0 Console应用程序,该应用程序是运行时间较长的应用程序(直到用户退出它)。

我想为此添加一个Rest API,并想添加AspNet Core MVC来做到这一点,但是当我访问http:// localhost:5006 / api / values时,我得到的只是一个404 Kestrel正在工作并处理请求但这并没有达到我的控制器!

我已将NuGet程序包添加到Microsoft.AspNetCore,Microsoft.AspNetCore.Mvc。我还添加了对Microsoft.AspNetCore.All的引用,但是这也不起作用,所以我现在删除了它,因为我不需要所有的膨胀。

我在我的应用程序中将此称为静态Main()

private static void StartWeb()
{
    var host = WebHost
              .CreateDefaultBuilder()
              .UseKestrel()
              .UseStartup<WebStartup>()
              .UseUrls("http://*:5006")
              .Build();
    host.Start();
}
Run Code Online (Sandbox Code Playgroud)

这是WebStartup类

namespace myApp
{
    public class WebStartup
    {
        public IConfiguration Configuration { get; }
        public WebStartup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

最后在Controllers文件夹中,我有一个名为ValuesControler的类。 …

c# asp.net-core-mvc asp.net-core

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

在可以解密密码的类上将类设置为Internal是足够的

下面是我刚才在互联网上找到的加密/解密类的简化版本.

我一直用它来以加密格式将密码存储在配置文件中,这样就不能通过窥探来读取它.然后可以解密inapp以访问网络资源.

我正在使用它来阻止任何人以任何方式读取纯文本密码,例如配置文件,将其作为命令行变量传递,该变量必须在计划任务中等.

这是一个控制台应用程序,其中一个命令行参数允许用户获取他们提供的字符串密码的加密版本,没有可公开访问的解密方法.

将类设置为内部足以阻止某人调用Decrypt方法或对加密密码进行反向工程,我猜它会阻止任何人引用它并只是调用解密方法但我可以做任何事情否则加强安全?

我想过将Key和Vector从外部传递给构造函数,但是如果它们仍然在同一个dll中,如果有人可以获得这些字节,那么它是否真的有助于提高安全性?

internal class SimpleAES
{
    private byte[] Key = { 1, 2, .. n };
    private byte[] Vector = { 1, 2, .. n };

    private ICryptoTransform EncryptorTransform, DecryptorTransform;
    private System.Text.UTF8Encoding UTFEncoder;

    public SimpleAES()
    {
        RijndaelManaged rm = new RijndaelManaged();
        EncryptorTransform = rm.CreateEncryptor(this.Key, this.Vector);
        DecryptorTransform = rm.CreateDecryptor(this.Key, this.Vector);
        UTFEncoder = new System.Text.UTF8Encoding();
    }

    public string EncryptToString(string TextValue)
    {
        return ByteArrToString(Encrypt(TextValue));
    }

    public byte[] Encrypt(string TextValue)
    {
        Byte[] bytes = UTFEncoder.GetBytes(TextValue);
        MemoryStream memoryStream = new MemoryStream(); …
Run Code Online (Sandbox Code Playgroud)

c# encryption

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