HttpContext.Actuel.Réponse à l'intérieur d'une méthode statique
J'ai la méthode statique suivante à l'intérieur d'une classe statique. Ma question est-il sécuritaire d'utiliser HttpContext.Actuel.Réponse à l'intérieur d'une méthode statique? Je veux être sûr à 100% que c'est thread-safe et n'est associé au thread appelant.. est-ce que quelqu'un sait la réponse?
public static void SetCookie(string cookieName, string cookieVal, System.TimeSpan ts)
{
try
{
HttpCookie cookie =
new HttpCookie(CookiePrefix + cookieName)
{Value = cookieVal, Expires = DateTime.Now.Add(ts)};
HttpContext.Current.Response.Cookies.Add(cookie);
}
catch (Exception)
{
return;
}
}
OriginalL'auteur Rippo | 2009-11-13
Vous devez vous connecter pour publier un commentaire.
Oui c'est tout à fait sécuritaire. HttContext.Actuel fera l'acquisition de l'actuel HttpContext à partir du thread en cours d'exécution.
Son une technique courante et vous évite d'avoir à passer l'objet de contexte autour comme "Clochard de données".
"clochard de données" - lol
OriginalL'auteur AnthonyWJones
HTTPContext.Le courant est statique, donc le fait que vous êtes de l'appeler à partir d'une méthode statique n'est pas pertinent. Ce qui est pertinent, c'est que HTTPContext.Le courant est mis en œuvre de telle manière qu'il retourne le du thread actuel HTTP Contexte, si elle existe.
OriginalL'auteur Yuliy
Il n'est pas clair que voulez-vous dire exactement par thread-safety. Oui,
HttpContext.Current
renvoie laHttpContext
objet associé au thread courant. Notez que si vous appelez la fonction sur un fil à l'exception de celui qui est actuellement le traitement de la demande (par exemple, dans un async appel de fonction), vous ne seriez pas en mesure d'accéder à laHttpContext
objet que vous voulez.Une autre approche est d'avoir le contexte de l'objet passé comme argument à la fonction.
OriginalL'auteur Mehrdad Afshari