小编Ian*_*ths的帖子

$(SolutionDir) 和 $(SolutionPath) 在 Visual Studio 2017 中无法正常工作

我尝试在 Visual Studio 2017 中的文件中使用$(SolutionDir)或,但它们无法按预期工作。$(SolutionPath).csproj

在 MSBuild 15 类型项目(例如 .NET Core、.NET Standard 类库)中,使用$(SolutionDir)in a<PostBuildEvent>有效,但$(ProjectDir)只会生成一个空字符串。

In 其他元素(例如AssemblyFilein UsingTask$(SolutionDir)生成一个空字符串并$(SolutionPath)给出当前项目目录。

此问题已通过https://developercommunity.visualstudio.com/content/problem/11118/postbuild-event-and-macros-issues.html向 Microsoft 报告,但该问题已标记为“已关闭”,因为问题已修复在 RTM 中,尽管有几个人报告发布版本存在问题。

msbuild .net-core visual-studio-2017

5
推荐指数
0
解决办法
4594
查看次数

Clojure:列表或其他集合中值的索引

如何获取字符串列表中任何元素的索引:

(list "a" "b" "c")
Run Code Online (Sandbox Code Playgroud)

例如,(function "a")将不得不返回0,(function "b")1,(function "c")2,依此类推.

并且...如果处理很长的数据列表,使用任何其他类型的集合会更好吗?

clojure

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

Web API中的客户端证书和基于声明的身份

如果访问通过HTTPS实现为ASP.NET Web API Controller的端点的客户端提供客户端证书,则该证书可通过Request.GetClientCertificate.但是,我想知道:是否有可能以基于声明的模型的形式提供与.NET 4.5中的安全模型集成的信息?

我想这样做的主要原因是我需要不同的客户端才能以不同的方式进行身份验证以访问相同的服务,因此我更愿意从证书等细节中抽象出来.我希望我的控制器能够根据当前用户的索赔做出决策,而不必担心这些索赔的起源.

我知道有一种X509CertificateClaimSet类型,它看起来像是自然流动:

  1. 通过TLS/SSL传递的客户端证书通过X509CertificateClaimSet某种令牌映射过程表示(类似于您可以用于ACS的联合提供程序生成的传入cookie如何由SessionSecurityTokenHandler
  2. 声明转换模块(从元素派生ClaimsAuthenticationManager并配置的<claimsAuthenticationManager>元素)检查来自证书的声明集,并将其转换为特定于非令牌的特定于应用程序的声明
  3. 处理程序查找特定于应用程序的声明.

甚至有一个X509SecurityTokenHandler,听起来应该这样做.但是,据我所知,这是针对在发送的消息中处理基于证书的身份验证的情况而设计的 - 它似乎没有任何支持证书的所有权证明发生在传输级别,即作为TLS/SSL握手的一部分.

我想知道是否需要编写自己的模块来执行此操作.理论上,看起来它可能只是处理AuthenticateRequest事件,查看证书请求,X509CertificateClaimSet如果存在则从证书构建.但是......那又怎样?我只是创建自己的ClaimsPrincipal并替换现有用户吗?或者是否有一些"正确"的方式将我发现的声明添加到集合中?(客户端证书不一定是声明的唯一来源 - 我的应用程序已经在使用与ACS集成的声明.是否有一种标准机制来确保所有可能的声明来源都正确合并?)

它看起来像SessionAuthenticationModule(SAM)是当前提供声明主体的身份模型组件,它只是替换先前在上下文中的那个以及当前线程的用户.但它似乎提供了可扩展性 - 如果覆盖它ValidateSessionToken,则返回ClaimsIdentity构成主体的对象集.所以在理论上,我可以覆盖它并在那时添加任何其他声明.

但我不确定这是不行的方式.据我所知,SAM在ClaimsAuthenticationManager完成其声明转换后执行此操作.或者声称转换错误的模型与这里一起去?

asp.net ssl-certificate claims-based-identity wif asp.net-web-api

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

如何在Add-AzureAccount中使用Microsoft(非组织)帐户?

我正在尝试使用Add-AzureAccountAzure PowerShell工具的一部分命令(2014年8月,v0.8.6),虽然网上的各种示例让我期望它可以让我使用组织帐户或Microsoft帐户登录,实际上,它似乎需要一个组织帐户.

当我执行命令时,它会按预期打开托管浏览器窗口,但提示符Sign in with your organizational account后跟用户名和密码.似乎没有办法告诉它不,我实际上需要使用Microsoft帐户.

(碰巧的是,我的电子邮件地址既与组织帐户相关联,也与Microsoft帐户相关联.这可能没有帮助.)

我可以在Azure Active Directory中创建一个完全独立的组织帐户,使其成为共同管理员,并使用该帐户登录,但似乎这不是必需的.

有没有办法强迫它为我提供两种选择?

powershell azure azure-powershell

3
推荐指数
1
解决办法
5554
查看次数

C# json DeserializeObject 继承

我有一个 Parent 类和一个 Child 类,json 字符串包含 Child 类的属性,但是当我执行 DeserializeObject 时,我无法获得这些属性,因为 Child 成为了 Parent。

例如 :

class Data {
    public List<Parent> Parents;
}

class Parent {
    public string Foo;
}

class Child : Parent {
    public string Bar;
}

var data = new Data { Parents = new List<Parent> { new Child{Bar = "a"} } };
Console.WriteLine(data.Parents.Count); // <= it prints 1
Console.WriteLine(data.Parents.OfType<Child>().Count()); // <= it prints 1

var dataJson = JsonConvert.SerializeObject(data);
data = JsonConvert.DeserializeObject<Data>(dataJson);

Console.WriteLine(data.Parents.Count); // <= it prints 1 …
Run Code Online (Sandbox Code Playgroud)

c# json

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