【问题标题】:How to set cookie path in asp.net mvc如何在 asp.net mvc 中设置 cookie 路径
【发布时间】:2015-04-08 10:34:50
【问题描述】:

我正在尝试设置 cookie 路径,以便如果路径设置为根目录(即“/”),共享服务器上的其他应用程序将无法访问它们。

我正在尝试在 web.config 文件中进行如下设置:

<forms loginUrl="~/account/logon" timeout="2880" requireSSL="true" path="my_virtual_directory_name" />

我知道这仅适用于“.ASPXAUTH”cookie。在我的情况下,路径设置为此 cookie,并创建另一个具有相同名称的 cookie,路径设置为 root。

我需要为所有 cookie 设置路径,并且不应该有重复的 cookie,一个具有正确的路径,另一个具有设置为 root 的路径。

请建议我如何为 asp.net mvc 4 应用程序中的所有 cookie 设置固定路径。

谢谢。

【问题讨论】:

  • 谁能帮我解决这个问题?

标签: asp.net-mvc cookies


【解决方案1】:

这是一个非常基本的示例,展示了如何设置 cookie 路径。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ControllerContext.HttpContext.Response.Cookies.Add(
             new HttpCookie("test", "hello") { Path = @"/admin", 
             Expires = DateTime.Now.AddDays(1)});

        return View();
    }
}

【讨论】:

  • 谢谢 matt..当我们添加用户定义的 cookie 时,您的方法效果最好。但是 MVC 会自动添加某些 cookie,例如:1) ASP.NET_SessionId 2) __RequestVerificationToken_L0lMLU1BUw2 3) .ASPXAUTH .. 等您建议的方法不适用于这些 cookie...我想要的是添加所有 cookie 的路径,包括自动生成和自定义添加(例如您定义的测试 cookie。)
【解决方案2】:

使用这是asp.net C#

 HttpCookie cookies=  HttpContext.Current.Response.Cookies["sessionstarttime"];
            cookies.Value = "Value of Cookies";
            cookies.Expires = DateTime.Now.AddMinutes(20);
            cookies.Path = "/";

如果您使用的是 JQuery,请使用以下

$.cookie("sessionstarttime", "Value",{ path: '/' });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多