小编Ami*_*ich的帖子

ASP.NET Web API的JWT身份验证

我正在尝试在我的Web API应用程序中支持JWT承载令牌(JSON Web令牌),我迷路了.

我看到对.NET Core和OWIN应用程序的支持.
我目前正在IIS中托管我的应用程序.

如何在我的应用程序中实现此身份验证模块?有什么办法可以使用<authentication>类似于我使用表单/ Windows身份验证的方式配置吗?

c# security jwt asp.net-web-api

238
推荐指数
5
解决办法
21万
查看次数

如何使用StackExchange.Redis支持Redis哨兵架构?

我的应用程序使用该StackExchange.Redis包,我开始使用sentinel体系结构,以支持高可用性和故障.

我在网上搜索,试图ConnectionMultiplexer在使用哨兵架构时找到正确的方法来使用该对象,并且无法找到有用的答案.

有些帖子说它不支持它或部分支持它,有些帖子告诉你将所有redis连接地址添加到连接字符串,有些帖子告诉你,他们通过订阅事件提供了自定义实现.

那么,ConnectionMultiplexer支持这种架构吗?
如果答案是肯定的,我的连接字符串应该如何?

c# redis redis-sentinel stackexchange.redis

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

Fieldset和禁用所有子输入 - 解决IE问题

我有一个在其下面有ui-view的fieldset.
每个视图都有很多字段(字段是包装输入的指令).

它看起来像这样:

<fieldset ng-disabled='myCondition'>
   <div ui-view></div> // this changes with lot's of fields that look like <div field='text-box'></div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

现在,这很好用,除IE之外的所有浏览器禁用字段.
我做了一些谷歌,看到即不支持fieldset +禁用,我正在寻找一个快速的解决方法.

我尝试了一些接近但不完美的事情,我认为我不是第一个需要解决方案的人(即使我没有在谷歌上找到任何东西).

internet-explorer fieldset disabled-input angularjs angularjs-directive

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

为什么带有"where T:class"约束的Generic <T>方法接受接口

我有这个interface:

public interface ITestInterface
{
    int TestInt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和这个通用方法(带T : class约束):

public void Test<T>() where T : class
{
    // DoSomething
}
Run Code Online (Sandbox Code Playgroud)

这个电话:

Test<ITestInterface>();
Run Code Online (Sandbox Code Playgroud)

一切编译和运行的同时,interface 是不是一个class(是吗?).

为什么会这样?

我第一次看到我的WCF代理类:

public partial class TestServiceClient:
     System.ServiceModel.ClientBase<TestNamespace.ITestService>, TestNamespace.ITestService
Run Code Online (Sandbox Code Playgroud)

ClientBase<T>这个定义在哪里:

public abstract class ClientBase<TChannel> : 
     ICommunicationObject, IDisposable where TChannel : class
Run Code Online (Sandbox Code Playgroud)

c# generics interface constraints

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

将事件绑定到angular指令中的$(document)

我有一个指令,它实现了一种选择框.
现在当选择框打开并且我点击它之外的某个地方(文档中的任何其他位置)我需要它折叠.

这个JQuery代码在我的指令中工作,但我想做"角度方式":

  $(document).bind('click', function (e) {
       var $clicked = e.target;
       if (!$clicked.parents().hasClass("myClass")) {
            scope.colapse();
       }
  });
Run Code Online (Sandbox Code Playgroud)

我尝试将$ document服务注入到我的指令中,但没有成功.

javascript jquery document angularjs

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

对象等于 - 对于不重写等于的纯对象或引用类型的基本逻辑是什么?

我在读完这篇文章之后来到这里并且没有找到相关的答案 - 所以在你阅读整个问题之前,请不要将其标记为副本.

我一直在使用反射器并进行调查.Object.Equals我看到的是:

[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual bool Equals(object obj)
{
    return RuntimeHelpers.Equals(this, obj);
}
Run Code Online (Sandbox Code Playgroud)

而且RuntimeHelpers.Equals看起来是这样的:

// System.Runtime.CompilerServices.RuntimeHelpers
/// <summary>Determines whether the specified <see cref="T:System.Object" /> instances are considered equal.</summary>
/// <returns>true if the <paramref name="o1" /> parameter is the same instance as the <paramref name="o2" /> parameter, or if both are null, or if o1.Equals(o2) returns true; otherwise, false.</returns>
/// <param name="o1">The first object to …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

使用.net代码更新cshtml文件时,为什么不需要编译?

我正在使用Asp.net Mvc,我想知道为什么我不需要在cshtml文件中更新.net代码时编译我的项目?现在,如果我们谈论html\css更新,那么我清楚地理解为什么简单的刷新就足够了,但是在这些情况下.net代码如何动态编译?

让我说我有一个视图,我想添加一些c#代码,像Datetime.Now.ToString();
现在我通常可以添加这行代码到我的cshtml文件,保存文件,刷新页面,看到结果而不编译.

如果我通过向我的模型中添加属性来"按书"执行相同的操作,Datetime.Now.ToString()在我的控制器中分配并简单地渲染新的var我将需要编译我的代码以便查看更改.

这个神奇的工作原理如何?如果它如此简单,为什么不能用.cs文件呢?

Ps同样的问题与asp.net应用程序和aspx\ascx页面相关.

c# asp.net compiler-construction asp.net-mvc

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

AngularJS +单核CPU =几乎100%的CPU

我已经构建了一个大型AngularJS应用程序,直到现在都表现良好.
我的问题开始时,一些用户(使用一台 CPU的旧计算机)抱怨应用程序非常慢.

我打开了任务管理器,我可以看到该选项卡总是在70% - 100%CPU(当使用单核CPU时).

现在因为这在强大的计算机上运行得很好,我不确定我是否有性能问题,如果我这样做,我真的不知道如何检查这个(我不能用chrome上的性能工具来检查).

有办法处理这个吗?告诉你Angular执行它的摘要周期吗?
有没有人遇到类似的问题?任何提示对我来说都很棒.

javascript performance angularjs

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

dotnet aspnetcore docker build失败,出现145错误代码

我已经用这个教程创建了我的第一个docker webapi项目.

我正在使用Windows 7(docker toolbox).

这就是我跑的:

dotnet new webapi
Run Code Online (Sandbox Code Playgroud)

这是Dockerfile:

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app

RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]

EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000

ENTRYPOINT ["dotnet", "run"]
Run Code Online (Sandbox Code Playgroud)

这就是我创建图像的方式:

docker build -t mydemos:aspnetcorehelloworld .
Run Code Online (Sandbox Code Playgroud)

这就是我创建和运行容器的方式:

docker run -d -p 8080:5000 -t mydemos:aspnetcorehelloworld
Run Code Online (Sandbox Code Playgroud)

我的服务成功运行为docker容器.

然后,我尝试更改Dockerfile以处理aspnetcore基本映像:

FROM microsoft/dotnet:latest 被改为 FROM microsoft/aspnetcore:1.0.1

新的Dockerfile看起来像:

FROM microsoft/aspnetcore:1.0.1
COPY . /app
WORKDIR /app

RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]

EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000

ENTRYPOINT ["dotnet", "run"]
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用构建新图像

docker build -t …
Run Code Online (Sandbox Code Playgroud)

.net docker docker-toolbox asp.net-core

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

Asp.net WebApi OData V4嵌套$扩展问题

我有一个OData V4Asp.net WebApi(OWIN).

一切都很好,除非我尝试查询4级$expand.

我的查询如下:

http://domain/entity1($expand=entity2($expand=entity3($expand=entity4)))
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但我的回复中没有预测最后一次展开.

更多信息:

  1. 我把它设置MaxExpandDepth为10.
  2. 我的所有实体都是EntitySets.
  3. 我正在使用ODataConventionModelBuilder.
  4. 我打开了一个SQL-profiler,可以看到查询(和结果)是正确的.它是在执行查询后发生的一些过滤器.
  5. 我在网上搜索过,没找到合适的东西.
  6. 我尝试了不同的实体4级别$expands,但它们也没有用.

编辑:

我已经覆盖了OnActionExecuted:

public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
    base.OnActionExecuted(actionExecutedContext);

    var objectContent = actionExecutedContext.Response.Content as ObjectContent;
    var val = objectContent.Value;

    var t = Type.GetType("System.Web.OData.Query.Expressions.SelectExpandWrapperConverter, System.Web.OData");
    var jc = Activator.CreateInstance(t) as JsonConverter;
    var jss = new JsonSerializerSettings();
    jss.Converters.Add(jc);

    var ser = JsonConvert.SerializeObject(val, jss);
 }
Run Code Online (Sandbox Code Playgroud)

序列化值包含entity4.

我仍然不知道哪个组件删除了管道中的entity4.

编辑#2:

我一遍DefaultODataSerializerProvider又一遍地创建了一个适配器 …

c# odata asp.net-web-api

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