小编Nic*_*ert的帖子

Asp.Net核心从url获取RouteData值

我正在研究一个新的Asp.Net核心mvc应用程序.我定义了一个带有自定义约束的路由,它从网址设置当前的应用文化.我正在尝试通过创建如下所示的自定义来管理我的应用的本地化IRequestCultureProvider:

public class MyCustomRequestCultureProvider : IRequestCultureProvider
    {
        public Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
        {
            var language= httpContext.GetRouteValue("language");

            var result = new ProviderCultureResult(language, language);
            return Task.FromResult(result);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的MyCustomRequestCultureProvider每个请求都被击中,这没关系.我的问题是在MVC管道中,DetermineProviderCultureResult来自我的提供程序的方法在路由进程之前被命中,所以httpContext.GetRouteValue("language")总是返回null.

在以前版本的MVC中,我有可能通过这样做来通过路由过程手动处理我的URL

var wrapper = new HttpContextWrapper(HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(wrapper);
var language = routeData.GetValue("language")
Run Code Online (Sandbox Code Playgroud)

我现在找不到在新的framewrok中做同样事情的方法.此外,我想使用路由数据找出我的langugae,用一些字符串函数分析我的url字符串,以找到语言不是一个选项.

asp.net-core-mvc asp.net-core asp.net-core-1.0

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

IIS中的Asp.Net核心MVC应用程序Windows身份验证

我的Asp.Net Core mvc Web应用程序需要Windows身份验证.在开发中,在IIS Express上,由于这个设置,一切正常

launchSettings.json

 "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": false,
    "iisExpress": {
      "applicationUrl": "http://localhost:61545/",
      "sslPort": 0
    }
  }
Run Code Online (Sandbox Code Playgroud)

部署到IIS时,我得到一个空白页面.对我的网站的请求获得500错误代码.

我想这个配置添加到Startup.cs,如解释在这里,没有成功.

    services.Configure<IISOptions>(options => {
        options.ForwardWindowsAuthentication = true;
    });
Run Code Online (Sandbox Code Playgroud)

当我直接在IIS中查看身份验证参数时,将激活Windows身份验证.

我找到一些帖子谈论一个名为的包Microsoft.AspNetCore.Server.WebListener,其他人关于实现自定义中间件.我无法想象这个基本功能需要付出那么多努力.我错过了什么吗?

iis windows-authentication asp.net-core

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