出于某种原因,在我的应用程序中,我的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) 我有一个现有的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的类。 …
下面是我刚才在互联网上找到的加密/解密类的简化版本.
我一直用它来以加密格式将密码存储在配置文件中,这样就不能通过窥探来读取它.然后可以解密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)