Доступ к файлам cookie из статического класса в ASP.net Сердечник

#c# #asp.net-core #cookies

Вопрос:

Я пытаюсь получить доступ к файлам cookie из статического класса в Asp.net Ядро , до сих пор я не мог найти никаких полезных тем в Google. есть какие-Нибудь Предложения?

Я уже сделал это в asp.net:

 public static string GetString(string Key)
        {
            var format = System.Web.HttpContext.Current.Request.Cookies["Language"];
            if (format == null)
                format = new HttpCookie("Language") { Value = "Fa" };
            ResourceManager rm = new ResourceManager("Ippv.Virtual.Application.Properties."   format.Value,
                Assembly.GetExecutingAssembly());
            return rm.GetString(Key);
        }
 

Как я могу написать эквивалент этого кода в asp.net ядро?

Комментарии:

1. Показ некоторого соответствующего кода поможет. Почему вы не можете передать значение файла cookie в качестве параметра статическому методу?

Ответ №1:

В ASP.NET, мы можем получить доступ к файлам cookie с помощью httpcontext.current, но в ASP.NET Ядро, в настоящее время нет htttpcontext. В ASP.NET Ядро, все разделено и модульно.Httpcontext доступен из объекта запроса и интерфейса IHttpContextAccessor, который находится в разделе «Microsoft.Пространство имен AspNetCore.Http», и оно доступно в любом месте приложения. Обратитесь к следующему коду:

  public class TestController : Controller
    {
        private readonly IHttpContextAccessor _httpContextAccessor;

        public TestController(IHttpContextAccessor httpContextAccessor)
        {
            this._httpContextAccessor = httpContextAccessor;
        }
        public  IActionResult Index()
        {
 //read cookie from IHttpContextAccessor  
            string cookieValueFromContext = _httpContextAccessor.HttpContext.Request.Cookies["key"];
            //read cookie from Request object  
            string cookieValueFromReq = Request.Cookies["Key"];
            //set the key value in Cookie  
            Set("kay", "Hello from cookie", 10);
            //Delete the cookie object  
            Remove("Key");
            return View();
        }
        /// <summary>  
        /// Get the cookie  
        /// </summary>  
        /// <param name="key">Key </param>  
        /// <returns>string value</returns>  
        public string Get(string key)
        {
            return Request.Cookies[key];
        }
        /// <summary>  
        /// set the cookie  
        /// </summary>  
        /// <param name="key">key (unique indentifier)</param>  
        /// <param name="value">value to store in cookie object</param>  
        /// <param name="expireTime">expiration time</param>  
        public void Set(string key, string value, int? expireTime)
        {
            CookieOptions option = new CookieOptions();
            if (expireTime.HasValue)
                option.Expires = DateTime.Now.AddMinutes(expireTime.Value);
            else
                option.Expires = DateTime.Now.AddMilliseconds(10);
            Response.Cookies.Append(key, value, option);
        }
        /// <summary>  
        /// Delete the key  
        /// </summary>  
        /// <param name="key">Key</param>  
        public void Remove(string key)
        {
            Response.Cookies.Delete(key);
        }
   
 

Комментарии:

1. Спасибо, Что Очень Помогло