J'ai une application asp.net MVC sur laquelle je travaille et j'ai écrit un actionfilter personnalisé afin de filtrer certaines actions du contrôleur en fonction des niveaux d'autorisation qui sont définis lors de la connexion et stockés dans un cookie chiffré à côté du cookie formsauthentication, les deux cookies sont configurés pour avoir le même temps d'expiration mais pour une raison quelconque après un certain temps d'inactivité la valeur du cookie d'autorisation devient vide, je n'ai pas été capable de déboguer et de l'attraper dans l'acte mais disparaîtValeur de cookie expirant avant l'expiration du cookie
mon code ActionFilter ressemble à ceci:
string usersRole = "";
if (filterContext.HttpContext.Session["role"] != null)
usersRole = filterContext.HttpContext.Session["role"].ToString();
else if (filterContext.HttpContext.Response.Cookies["ArisPortalCookie"].Value != null)
{
usersRole = filterContext.HttpContext.Response.Cookies["ArisPortalCookie"].Value;
filterContext.HttpContext.Session["role"] = usersRole;
}
string encryptedRole = EncryptionHelper.Encrypt(RoleToCheckFor);
if (encryptedRole == usersRole || usersRole == EncryptionHelper.Encrypt("Admin")) //if the user's role and role required match, we have success
{
//now we break down the response action based on what role was required
if (RoleToCheckFor == "Admin")
{
}
else if (RoleToCheckFor == "Tech" || RoleToCheckFor == "Admin")
{
}
else if (RoleToCheckFor == "Physician" || RoleToCheckFor == "Admin")
{
}
}
else
{
filterContext.Result = new ViewResult
{
ViewName = "NoAuth",
ViewData = filterContext.Controller.ViewData,
TempData = filterContext.Controller.TempData
};
}
trouvé un problème possible, mon application stocke un cookie d'identification de session qui semble effacer ma valeur du cookie quand il arrive à expiration – Jimmy