小编Jos*_*ron的帖子

从Visual Studio启动站点时IIS Express崩溃

安装Visual Studio 2015 RC后,我开始遇到此问题; 我无法再从Visual Studio 2013调试Web项目.

我的项目构建正常,VS启动浏览器 - 我可以在输出中看到iisexpress.exe加载项目的所有相关DLL,但是当我希望看到我的网站时,iisexpress.exe停止运行并且Visual Studio停止调试.所有输出窗口告诉我的是:

The program '[3724] iisexpress.exe: Program Trace' has exited with code 0 (0x0).
The program '[3724] iisexpress.exe' has exited with code -532462766 (0xe0434352).
Run Code Online (Sandbox Code Playgroud)

查看事件查看器,我看到iisexpress.exe的以下崩溃信息:

Faulting application name: iisexpress.exe, version: 8.0.8418.0, time stamp: 0x4fbaa9e8
Faulting module name: KERNELBASE.dll, version: 6.1.7601.23040, time stamp: 0x553e86a2
Exception code: 0xe0434352
Fault offset: 0x0000c44d
Faulting process id: 0x1b40
Faulting application start time: 0x01d094d5c74c69d5
Faulting application path: C:\Program Files (x86)\IIS Express\iisexpress.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Run Code Online (Sandbox Code Playgroud)

我已经尝试重新安装IIS,删除我的本地IISExpress文件夹,但仍然没有运气.任何人都知道如何让IIS再次运行?

iis-express visual-studio-2015

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

将Windows身份验证与OAuth 2.0一起使用

我已经设置了一个OWIN授权服务器和几个公开ASP.NET Web API的资源服务器.我从授权服务器提供特定于每个资源服务器的JWT(这个想法是每个资源服务器需要在其令牌中包含自定义声明).

这些服务器都在Intranet环境中,我们历来使用Windows身份验证(Kerberos)来提供单点登录体验.此功能在我的实现中已丢失,因为我使用用户的用户名和密码(针对AD进行身份验证)来授予令牌.我想知道的是,是否有办法获得单点登录体验 - 也许通过使用Windows身份验证来确定用户的身份,然后授予他们一个令牌?

我觉得这有点不正统,可能会很愚蠢 - 所以请告诉我是否有更好的替代方法在Intranet环境中使用OAuth 2.0获取SSO.

.net windows-authentication single-sign-on oauth-2.0 owin

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

包装StaticFileMiddleware以重定向404错误

我正在尝试将自定义中间件注入到我的OWIN管道中,该管道包装StaticFileMiddleware来自MS 的可用,以支持AngularJS中的HTML 5模式.我一直在关注这个指南:http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx

从我可以收集到的如何工作,我的中间件将请求传递给静态文件中间件,然后如果它无法解决这些请求(即,请求HTML 5角度路径,"/无论如何"),它返回基本角度页面,以便对HTML 5路径的硬请求将起作用.

我的问题是调用内部中间件的结果似乎总是200状态代码,即使在我的浏览器中我得到404,这让我挠头.这是我的代码供参考:

public static class AngularServerExtension
{
    public static IAppBuilder UseAngularServer(this IAppBuilder builder, string rootPath, string entryPath)
    {
        var options = new AngularServerOptions()
        {
            FileServerOptions = new FileServerOptions()
            {
                EnableDirectoryBrowsing = false,
                FileSystem = new PhysicalFileSystem(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, rootPath))
            },
            EntryPath = new PathString(entryPath)
        };

        builder.UseDefaultFiles(options.FileServerOptions.DefaultFilesOptions);
        return builder.Use(new Func<AppFunc, AppFunc>(next => new AngularServerMiddleware(next, options).Invoke));           
    }
}

public class AngularServerMiddleware
{
    private readonly AngularServerOptions _options;
    private readonly AppFunc _next;
    private readonly StaticFileMiddleware _innerMiddleware; …
Run Code Online (Sandbox Code Playgroud)

asp.net angularjs owin

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

在ASP.NET Core中替换中间件的激活器

我试图指示我的ASP.NET Core MVC应用程序使用第三方DI容器.而不是写一个适配器,我试图按照这篇文章中的建议插入库

这很好用 - 我可以IControllerActivator用我自己的内置替换使用DI容器的内置.但是,在尝试实例化依赖注入依赖项的自定义中间件时,我遇到了障碍.ASP.NET无法解决这些依赖关系,因为它没有使用我的第三方DI容器 - 是否有相当于IControllerActivator中间件,或者我是否坚持使用内置DI或编写适配器?

**编辑**

这是我的一些代码 - 我实际上是尝试使用上面的模式使用Ninject.

internal sealed class NinjectControllerActivator : IControllerActivator
{
    private readonly IKernel _kernel;

    public NinjectControllerActivator(IKernel kernel)
    {
        _kernel = kernel;
    }

    [DebuggerStepThrough]
    public object Create(ActionContext context, Type controllerType)
    {
        return _kernel.Get(controllerType);
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现我有两个问题:

  • 我不能将标准的ASP.NET组件注入我的控制器,因为Ninject不知道它们
  • 我使用应用程序服务的中间件无法实例化,因为ASP.NET不知道Ninject.

有关第一个问题的示例,这里是一个无法实例化的控制器,因为我正在使用IUrlHelper(还要注意ILogger,它也无法实例化):

public class SystemController : Controller 
{
    public SystemController(ILogger logger, IUrlHelper urlHelper) 
    {
         /*...*/
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是自定义中间件的第二个问题示例:

public class CustomMiddleware
{
    private …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ninject asp.net-core

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

IE11覆盖Intranet环境中的Bearer授权头

我在IE11中遇到一个非常奇怪的问题,即使我通过AngularJS设置它,浏览器也会覆盖我的请求中的Authorization标头.

基本上,我有一个HTTP拦截器注册所有看起来像这样的请求:

AuthInterceptorService.request = function (config) {
    config.headers.Authorization = "Bearer " + bearerToken;
}
Run Code Online (Sandbox Code Playgroud)

这适用于所有浏览器(甚至在特定条件下的IE).我在IIS中设置了我的应用程序以允许匿名身份验证,并且我已为此子网站禁用了基本/集成身份验证,但是,父配置具有Windows身份验证eabled.

偶尔会发生的是浏览器会向根URL发出静态文件请求(比方说/favicon.ico).使用401拒绝此请求.浏览器使用协商身份验证进行响应并获取favicon.此时,所有其他浏览器仍然让我的代码设置Authorization标头,但是一旦在IE中进行了这种集成身份验证,授权标头似乎就会卡住 - 无论我的代码是什么,授权标头总是使用集成身份验证.这会导致对我的API的所有请求失败,因为不存在Bearer令牌.

我能够通过指定更本地的favicon(静态文件可以匿名提供)来解决favicon问题,但我想知道是否有一个不那么苛刻的解决方案来解决这个问题.即使在先前的请求中进行了Windows身份验证,我是否能以某种方式说服IE让我设置授权标头?

注意:我发现这个问题似乎是相关的(也许是相同的根本原因).

authentication internet-explorer windows-authentication angularjs bearer-token

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

从 ASP.NET 5 中的 config.json 检索部分

假设我有一个config.json这样的:

{
  "CustomSection": {
    "A": 1,
    "B": 2
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用IConfiguration对象来获取特定设置,即 ,configuration.Get("CustomSection:A")但是我可以获取整个层次结构(任何类型 - 即使是原始字符串也可以)?当我尝试时configuration.Get("CustomSection"),我得到了null结果,所以我认为默认情况下不支持。

我的用例是一次获取整个配置字典,而不必获取每个单独的设置 - 在编译时可能不知道某些属性。

c# asp.net config.json asp.net-core

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

DNX Core 5.0 JwtSecurityTokenHandler"IDX10640:不支持算法:'http://www.w3.org/2001/04/xmldsig-more#hmac-sha256'"

我正在尝试实现JWT令牌,但仍然遇到以下异常:IDX10640:不支持算法:' http : //www.w3.org/2001/04/xmldsig-more#hmac-sha256 '尝试写入时用于压缩json字符串的标记.

const string issuer = "issuer";
const string audience = "audience";
byte[] keyForHmacSha256 = new byte[32];
new Random().NextBytes(keyForHmacSha256);

var claims = new List<Claim> { new Claim("deviceId", "12") };
var now = DateTime.UtcNow;
var expires = now.AddHours(1);
var signingCredentials = new SigningCredentials(
    new SymmetricSecurityKey(keyForHmacSha256), 
    SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.Sha256Digest);

var token = new JwtSecurityToken(issuer, audience, claims, now, expires, signingCredentials);
return _tokenHandler.WriteToken(token);
Run Code Online (Sandbox Code Playgroud)

解决这个问题的任何想法?

更新1:

"System.IdentityModel.Tokens.Jwt"出现上述错误:"5.0.0-beta7-208241120"

更新2:

更新的代码

c# json jwt adal

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

从标准模式解析 NodaTime LocalDate 的问题

我在尝试将字符串解析为 NodaTime LocalDate 时遇到问题。我的代码如下所示:

var value = "Monday, May 26, 2014";
var pattern = LocalDatePattern.CreateWithInvariantCulture("d");
var parseResult = pattern.Parse(value);
var localDate = parseResult.GetValueOrThrow();
Run Code Online (Sandbox Code Playgroud)

这总是导致 UnparsableValueException:

附加信息:值字符串与格式字符串“MM”中所需的数字不匹配。

据我所知,我的值应该符合标准模式(当我查看模式的示例模板值时,它看起来与我试图解析的值非常相似)。我在这里缺少什么?

编辑

我将代码更改为以下内容,但仍然收到类似的错误:

var value = "Monday, May 26, 2014";
var pattern = LocalDatePattern.CreateWithInvariantCulture("dddd, dd MMMM, yyyy");
var parseResult = pattern.Parse(value);
var localDate = parseResult.GetValueOrThrow();
Run Code Online (Sandbox Code Playgroud)

导致另一个 UnparsableValueException:

附加信息:值字符串与格式字符串“dd”中所需的数字不匹配。

c# nodatime

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

如果声明出错-xcode

伙计我做错了什么?

if (numberstring.intValue <=15) {
    rankLabel.text = @"A1";
}
else if (numberstring.intValue >16 && <=40){       
    rankLabel.text = @"A2";
}
Run Code Online (Sandbox Code Playgroud)

我在"<= 40"上收到错误..

c if-statement objective-c

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

Xamarin.iOS - 如何动态更改标签字体大小?

我正在尝试根据iPhone屏幕大小更改字体大小.

我设置了一个在iPhone 6 Plus上看起来不错的字体大小,一旦我检测到iPhone并且它不是iPhone 6 Plus,我就改变它的大小.

我正在尝试这个ViewDidLoad事件:

lblLogin.Font.WithSize(17f);
Run Code Online (Sandbox Code Playgroud)

但它不是更新FontSize,我猜"Font.WithSize"不是实现它的路径,任何想法?

iphone xamarin.ios ios

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