相关疑难解决方法(0)

Android Volley,重复的Set-Cookie被覆盖

尝试使用Volley lib作为我的Android应用程序的网络包装器.我有一个连接并运行,但问题是每次响应中有多个"Set-Cookie"标头时,Volley使用不能有重复键的Map,并且只会存储最后一个Set-cookie标头并覆盖其余的.

这个问题有解决方法吗?

还有另一个lib可以使用吗?

android adt setcookie http-headers android-volley

19
推荐指数
1
解决办法
5038
查看次数

WCF 4.0 Cookie 仅首先由浏览器记录

我正在研究使用 WebHttpBinding 从 WCF 自托管控制台应用程序 REST 服务写入 cookie 的最快方法。我准备了“设置 Cookie”,但仅在浏览器中设置了第一个 Cookie(在 Windows 上使用 FireFox 11.0)以及“过期”值。

var expiry = DateTime.Now.AddMonths( 6 );
var outresp = WebOperationContext.Current.OutgoingResponse;
outresp.Headers.Add( HttpResponseHeader.SetCookie , "cookie1=fd9416ea-2705-4d44-be76-f2f7b95e6b13; cookie2=7d489e69-d9c9-4b8d-a4b1-bce0da1c5966;expires=" + expiry );
Run Code Online (Sandbox Code Playgroud)

我还尝试在第一个 cookie 和第二个 cookie 之间添加逗号,但这也不起作用:

outresp.Headers.Add( HttpResponseHeader.SetCookie , "cookie1=fd9416ea-2705-4d44-be76-f2f7b95e6b13;, cookie2=7d489e69-d9c9-4b8d-a4b1-bce0da1c5966;expires=" + expiry );
Run Code Online (Sandbox Code Playgroud)

我把它剪下来,然后启动 Fiddler:

outresp.Headers.Add( HttpResponseHeader.SetCookie , "foo=foovalue;,bar=barvalue;" );
Run Code Online (Sandbox Code Playgroud)

Fiddler 显示了这一点:

Response sent 27 bytes of Cookie data:
    Set-Cookie: foo=foovalue;,bar=barvalue;

This response did not contain a P3P Header.

Validate P3P Policies at: http://www.w3.org/P3P/validator.html
Learn more at: …
Run Code Online (Sandbox Code Playgroud)

cookies rest wcf

5
推荐指数
1
解决办法
3311
查看次数

带有 Passport.js 多个 cookie 的快速会话

我正在尝试使用 Passport.js 和 Express-Session 实现登录功能,它运行良好,

var passport = require('passport'),
    session = require('express-session'),
    MongoDBStore = require('connect-mongodb-session')(session);

var sessionStore = new MongoDBStore({
    uri: config.db,
    collection: 'sessions'
});

var sessionOptions = {
    name: 'very-secure-cookie',
    secret: config.secret,
    resave: false,
    saveUninitialized: true,
    cookie: {
        secure: true,
        maxAge: null
    },
    store: sessionStore
};

app.use(session(sessionOptions));
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)

这里,maxAgenull,意味着客户端在关闭浏览器窗口时会注销。然而,我想用客户的电子邮件地址存储一个额外的 cookie,以便在<input type="text" name="email">他们稍后回来时想要重新登录时预先填写。

我尝试过app.use()使用另一个会话对象来将电子邮件信息存储在另一个 cookie 中,但由于某种原因,该 cookie 只设置一次(第一个)。

app.use(session(returningSessionOptions));
Run Code Online (Sandbox Code Playgroud)

在任何地方都找不到任何明智的解决方案:(

哦,我不得不提一下,我考虑过将cookie-parser中间件与 一起使用express-session,但文档指出这可能会导致冲突

cookies session node.js passport.js express-session

0
推荐指数
1
解决办法
5635
查看次数