小编Dis*_*ile的帖子

Key Vault 中的证书身份验证

我有一些秘密要保存在 Azure Key Vault 中。我知道我可以使用客户端 ID 和证书来通过 Key Vault 进行身份验证,而不是按照以下步骤使用客户端和密钥:

  1. 获取或创建证书
  2. 将证书与 Azure AD 应用程序关联
  3. 将代码添加到您的应用程序以使用证书

大多数示例使用 makecert 或 New-SelfSignedCertificate 来创建证书。在这种情况下,对于生产应用程序,自签名证书是否有问题?这仅适用于使用 Azure Key Vault 进行身份验证的应用程序,客户端不会在其浏览器中看到它。

如果在这种情况下仍然不赞成自签名证书,那么从受信任的机构购买证书是否与购买 SSL/TLS 证书的过程相同?它甚至是相同类型的证书吗?

security cryptography x509certificate azure-keyvault

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

将XUnit与Service Fabric一起使用

我使用无状态服务模板创建了一个新的Service Fabric应用程序.我添加了一个简单的类,所以我可以为它编写一个单元测试:

public class FakeClass
{
    public void DoStuff()
    {
        FabricClient client = new FabricClient();
    }
} 
Run Code Online (Sandbox Code Playgroud)

我为单元测试创​​建了一个新的类库,并引用了xUnit和xUnit runner nuget包.当我尝试运行单元测试时,我收到以下错误:

结果消息:System.BadImageFormatException:无法加载文件或程序集"XUnitExample.WebService,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.

如何让xUnit与Service Fabric一起使用,以便我可以编写单元测试?

c# xunit azure-service-fabric

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

ASP.net WebForms - 在标记中使用GetRouteUrl

我一直在试图弄清楚如何使用ASP.net 4.0 WebForms的路由功能.我添加了一条到我的路线集的路线:

void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute(
        "about-route",
        "about/",
        "~/About.aspx"
    );
}
Run Code Online (Sandbox Code Playgroud)

在我的母版页中,我尝试执行以下操作:

<asp:HyperLink ID="asdf" runat="server" NavigateUrl='<%= GetRouteUrl("about-route", new {}) %>'>Test</asdf>
Run Code Online (Sandbox Code Playgroud)

我遇到了编译器错误:服务器标签不能包含<%...%>结构.

在Web窗体中的服务器控件中创建路由URL的正确方法是什么?我还需要将其包含在以下内容中:

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="Home"/>
        <asp:MenuItem NavigateUrl="ROUTE HERE" Text="About"/>
    </Items>
</asp:Menu>
Run Code Online (Sandbox Code Playgroud)

c# asp.net webforms asp.net-routing

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

Powershell Excel Automation-在计划任务中保存/打开失败

我创建了一个简单的powershell脚本,它将创建一个excel实例并保存一个工作簿:

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\Test\foo.xls")
$workbook.SaveAs("C:\Test\bar.xls")

# cleanup code ...
Run Code Online (Sandbox Code Playgroud)

当我直接从powershell运行它时,它工作正常。我创建了一个计划任务来运行它,并且当我设置了“仅在用户登录后才运行”选项集时,它将可以正常运行。

当我更改此选项以无论用户是否登录运行时,尝试打开/保存文件都将失败。我使用的帐户具有正确的权限。我已将帐户设置为“作为服务登录”。

有什么建议么?

excel powershell scheduled-tasks windows-server-2008

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

为什么WCF合同包含ref/out参数?

我正在查看其他人的WCF服务合同,并注意到它正在使用out参数:

client.SomeMethod(parameter1, parameter2, out someOutParameter);
Run Code Online (Sandbox Code Playgroud)

是否有充分的理由使用out参数而不是将其添加到响应中?

编辑
这是代理生成的:

public string CreateItem(string contract, string note, out string warning)
Run Code Online (Sandbox Code Playgroud)

现在如果他们需要返回一个字符串并且还有一个警告,我通常会看到它:

public class CreateItemResponse
{
    public string Result { get; set; }
    public string Warning { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我只是好奇,如果有一个很好的理由不这样做,并使用返回的字符串和字符串作为out参数.

.net c# wcf

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

ASP.net MVC - 使用相同模型类型的EditorFor两次

我在MVC中有以下模型:

public class IndexViewModel
{
    public SubViewModel SubViewModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的索引视图中,我正在执行以下操作以显示编辑器SubViewModel:

Index.cshtml

@model IndexViewModel

@Html.EditorFor(m => m.SubViewModel)
Run Code Online (Sandbox Code Playgroud)

在我的SubViewModel.cshtml文件中,我尝试执行以下操作:

EditorTemplates/SubViewModel.cshtml

@model SubViewModel

@Html.EditorForModel("SubViewModelForm")
Run Code Online (Sandbox Code Playgroud)

基本上,我想把我的编辑分成两部分.第一个编辑器模板将创建表单,而内部模板将创建所有实际表单字段.问题是内部视图永远不会被渲染.

这就像MVC意识到我已经在该模型上调用了EditorFor并阻止我再次这样做.我有办法让这个工作吗?

编辑

我以为我清楚地输出了发生的事情,但我猜不是.

我想使用两个模板来显示单个模型.在第一个模板中,我想渲染表单和提交按钮,以及一些容器div.

在第二个模板中,我想渲染所有表单域.

Index.cshtml @ Html.EditorFor(m => m.SubViewModel) - >渲染表单和容器

SubViewModel.cshtml @ Html.EditorForModel("SubViewModelForm") - >呈现表单字段

问题是第二次调用(@ Html.EditorForModel("SubViewModelForm"))似乎没有做任何事情.它根本不会呈现任何标签.它被MVC忽略了.

我想这样做的原因是因为我将使用ajax调用发布此表单.如果一切正常(模型状态有效),那么我想将JSON数据返回到视图.如果模型无效,我想只返回表单字段的局部视图.这样我就不需要再次连接所有的事件处理程序了.我只能替换表单字段而不是整个视图.

.net asp.net-mvc mvc-editor-templates

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

在Entity Framework中使用扩展方法进行投影

是否可以在实体框架中使用扩展方法进行投影:

public class ProjectRepository
{
    public IQueryable<ProjectDto> GetActiveProjects()
    {
        // db.Projects is a DbSet<Project>
        // i want to use a projection to convert it to ProjectDto,
        // I know I can do new ProjectDto but I would rather do an
        // extension method and abstract that logic out
        return from p in db.Projects
            where p.Status == "Active"
            select p.AsProjectDto();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误:

LINQ to Entities无法识别方法'AsProjectDto'方法,并且此方法无法转换为存储表达式.

LINQ to SQL似乎能够处理这个问题,但实体框架却没有.是否有某种方法我需要编写扩展方法,以便它在EF中工作?

这是我的扩展方法:

public static class ProjectExtensions
{
    public static ProjectDto AsProjectDto(this Project project) …
Run Code Online (Sandbox Code Playgroud)

c# linq-to-entities entity-framework

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

HEAD~用于合并提交

在Git中,您可以使用简写HEAD~来引用HEAD之前的提交,使用HEAD~2之前引用两个,等等.

我有一个存储库,具有如下所示的合并提交:

A----B-------------F
      \           /
       C----D----E
Run Code Online (Sandbox Code Playgroud)

HEAD = F,HEAD~指向B,HEAD~2指向A.使用这样的合并提交,是否有指向E的速记?

git

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

C#表达式 - 从另一个表达式创建表达式

我试图使用看起来像这样的表达式创建一个可重用的方法:

Expression<Func<Order, bool>> CreateExpression(Expression<Func<Order, int>> parameter, FilterOperator operator, int value)
Run Code Online (Sandbox Code Playgroud)

所以我可以像这样使用它:

IQueryable<Order> orders = db.Orders;

var filtered = orders.Where(CreateExpression(o => o.OrderID, FilterOperator.GreaterThan, 100));
Run Code Online (Sandbox Code Playgroud)

我不知道怎么写这个方法.如何编写一个为我创建此Expression的方法?

我需要能够做这样的事情:

if(operator == FilterOperator.GreaterThan)
   return m => m.OrderID > value;
else if(operator == FilterOperator.LessThan)
   return m => m.OrderID < value;
Run Code Online (Sandbox Code Playgroud)

但我想使用传入的表达式而不是直接使用OrderID.我怎样才能做到这一点?

c# linq-expressions

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

async等待一个简单的包装器方法

如果我编写一个只包装异步方法的方法,例如:

public async Task WrapMethodAsync()
{
    using(var smtpClient = new SmtpClient())
    {
        await smtpClient.SendMailAysnc(new MailMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

这与执行以下操作相同:

public Task WrapMethodAsync()
{
    using(var smtpClient = new SmtpClient())
    {
        return smtpClient.SendMailAysnc(new MailMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

或者后者实际上不是异步运行?

.net c# asynchronous task-parallel-library async-await

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

获取父属性的DisplayAttribute

我有一个View Model,其定义如下:

public class VariableViewModel
{
    public string TemplateName { get; set; }
    public bool Enabled { get; set; }
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在其他View模型中使用此模型:

public class CreateViewModel
{
    [Display(Name="First Name")]
    public VariableViewModel FirstName { get; set; }

    [Display(Name="Last Name")]
    public VariableViewModel LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个为VariableViewModel定义的编辑器模板:

@model VariableViewModel

@Html.HiddenFor(model => model.TemplateName)
@Html.HiddenFor(model => model.Enabled)
@Html.LabelFor(model => model.Value)
@Html.TextBoxFor(model => model.Value)
Run Code Online (Sandbox Code Playgroud)

我的CreateViewModel的编辑器模板:

@model CreateViewModel

@Html.EditorFor(model => model.FirstName)
@Html.EditorFor(model => model.LastName)
Run Code Online (Sandbox Code Playgroud)

现在我的编辑器模板正在创建标签,如下所示:

<label for="FirstName">Value</label>
Run Code Online (Sandbox Code Playgroud)

是否有可能以查看 …

asp.net-mvc

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

手动回滚应用程序/服务

我有一个Service Fabric应用程序,下面有一些服务.他们目前都在1.0.0版本.

我为版本2.0.0的集群部署了一个更新.一切运行正常,部署成功.我注意到一个非常大但在版本中.有没有办法手动回滚到1.0.0版?我发现的唯一一件事是在升级过程中自动回滚.

azure-service-fabric

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