Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 替代';会议开始';在MVC6中_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

Asp.net core 替代';会议开始';在MVC6中

Asp.net core 替代';会议开始';在MVC6中,asp.net-core,asp.net-core-mvc,Asp.net Core,Asp.net Core Mvc,我正在尝试将一个旧的电子商店改写成MVC6,我正在解决很多问题。其中之一是我需要在会话开始时设置一些默认数据。在MVC6中,我发现没有任何东西可以用于thins。 我有多个商店作为一个应用程序实现,我需要在会话启动时设置一个ShopID。设置是按IP地址进行的。这不是我在这里设置的唯一内容,而是最具描述性的内容之一 您是否知道如何实现这一点,或者建议如何以不同的方式实现这一点 global.asax中旧实现的示例代码: void Session_Start(object sender,

我正在尝试将一个旧的电子商店改写成MVC6,我正在解决很多问题。其中之一是我需要在会话开始时设置一些默认数据。在MVC6中,我发现没有任何东西可以用于thins。 我有多个商店作为一个应用程序实现,我需要在会话启动时设置一个ShopID。设置是按IP地址进行的。这不是我在这里设置的唯一内容,而是最具描述性的内容之一

您是否知道如何实现这一点,或者建议如何以不同的方式实现这一点

global.asax中旧实现的示例代码:

    void Session_Start(object sender, EventArgs e) 
    {
    string url = Request.Url.Host;
    switch (url)
    {
    case "127.0.0.207":
    (SomeSessionObject)Session["SessionData"].ShopID = 123;
    break;
    case "127.0.0.210":
    (SomeSessionObject)Session["SessionData"].ShopID = 345;
    break;
    }
    }

我想在MVC6中写下这段代码,但不知道放在哪里,或者,即使可能。

以下可能是实现您尝试执行的操作的一种方法……在这里,我将在会话中间件之后注册一个中间件,以便在会话中间件完成工作后,当请求传入时,它将被该中间件拦截。您可以尝试一下,看看它是否适合您的场景

using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.Framework.DependencyInjection;

namespace WebApplication43
{
    public class Startup
    {
        // This method gets called by a runtime.
        // Use this method to add services to the container
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCaching();

            services.AddSession();

            services.AddMvc();
        }

        // Configure is called after ConfigureServices is called.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseStaticFiles();

            app.UseSession();

            app.Use((httpContext, nextMiddleware) =>
            {
                httpContext.Session.SetInt32("key1", 10);
                httpContext.Session.SetString("key2", "blah");

                return nextMiddleware();
            });

            app.UseMvc();
        }
    }
}
project.json中的相关包依赖项:

"dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta7",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta7",
    "Microsoft.AspNet.Session": "1.0.0-beta7",
    "Microsoft.Framework.Caching.Memory": "1.0.0-beta7",
    "Microsoft.AspNet.Http.Extensions": "1.0.0-beta7",

我建议在问题中添加一些代码,以显示您到目前为止所做的工作,并缩小您的要求范围。似乎这是可行的:)唯一的问题是,使用的内容发生在每个请求上,当然也发生在请求图像或任何其他内容时的请求上。无论如何,这是一个很好的起点,非常感谢。