相关疑难解决方法(0)

Chrome localhost Cookie未设置

我有一个ASP.net应用程序,它使用cookie来存储用户选择的语言.一切正常,除非我在localhost上.用127.0.0.1替换localhost使它再次工作......为什么?

我看到了对file://的预期限制,但我实际上找不到对localhost的预期限制的任何引用.

我无法理解的是为什么ASP.net会话(ASP.NET_SessionId)和ASP.net表单身份验证Cookie(.FSAUTHSSO)是为localhost域正确设置的,但我的cookie不是......为什么?!

我已经google了很多,没有任何作用:

  • 设置Chrome命令行标志--enable-file-cookies [不工作]
  • 将cookie设置为HttpOnly [无关紧要]
  • 将到期时间更改为会话或日期... [无关紧要]
  • 将Cookie路径更改为根(/)或其他任何内容[无关紧要]

那有什么关系呢?:)

为什么ASP.net cookie可以设置而我的不会?有什么不同?

最后一件事就是提到这也发生在IE上,但在FF上工作正常.

谢谢!

亚历克斯

asp.net cookies session google-chrome

49
推荐指数
6
解决办法
6万
查看次数

玩框架.从谷歌登录页面重定向后,会话变为空

我正在尝试在网络应用中加入谷歌分析图,以显示用户应用程序使用情况的统计数据.这是本地网址http://192.168.100.10:9000/我登录仪表板(网络应用程序)我有一个谷歌登录按钮.到目前为止,我在登录后维护用户的会话.

当用户点击登录按钮时.它触发回调方法.当第一次触发回调时,它会保持会话.我的意思session("user")是这里不是空的.

public Result callback() {
    JsonNode jsonNode = Json.parse(session("user"));
    UserDTO userDTO = Json.fromJson(jsonNode, UserDTO.class);

    if (userDTO.getRole().getType().equals(RoleDTO.EnRoleType.ADMIN.toString()))
        return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
    if (request().queryString().get("code") != null && request().queryString().get("state") != null && request().queryString().get("state")[0].equals(session("state"))) { // Check if he/she is authorized
        session().remove("state");
        Analytics analytics = setAnalytics(userDTO, request());
        session("analytics", Json.toJson(analytics).toString());
        return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
    } else {  // Create Authorization URL
        String url = helper.buildLoginUrl();
        session("state", helper.getStateToken());
        return redirect(url);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是用户点击登录按钮https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=784122128025-cvq0fn1e23f24dia4soavsd9v1ovesub.apps.googleusercontent.com&redirect_uri=http://localhost:9000/callback&response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly%20https://www.googleapis.com/auth/analytics.manage.users%20https://www.googleapis.com/auth/analytics%20https://www.googleapis.com/auth/analytics.edit%20https://www.googleapis.com/auth/analytics.manage.users.readonly%20https://www.googleapis.com/auth/analytics.provision&state=google-35808300时的网址当用户点击 allow谷歌登录权限页面上的按钮时,控制权将返回callback()

在此输入图像描述

但这次session("user")是空的.这不应该是null,因为我在用户登录时设置了会话.我不知道为什么会发生这种情况以及如何解决这个问题.

这是从谷歌权限页面重定向后的结束网址. HTTP://本地主机:9000 /回调状态=谷歌-35808300&代码= 4/G-FkJ3GGS01jbeXLHK0o95ks-K-drGK7bxgzvi3cELU#

java session google-analytics playframework playframework-2.0

12
推荐指数
1
解决办法
1056
查看次数

在dev中运行时,未在Google Chrome中设置ASP.net核心身份验证Cookie

我的解决方案中有三个应用程序,全部内置于asp.net core 1 MVC 6中.

  • App 1是用于验证用户的MVC应用程序.
  • App 2是Angular SPA应用程序,是解决方案中的主要应用程序.
  • App 3是MVC web api应用程序.

在应用程序3中,我有通常的asp.net核心SignInManager和UserManager代码(当你启动一个新的MVC 6模板时默认获得相同的代码 - 只有不同的是,它存在于我的web api中).登录/注销/注册等通过我的AccountController中的web api方法公开.这允许我锁定web api,因此只有经过身份验证的请求才会被处理(使用[Authorize]属性).

当我在AccountController中调用"Login"方法时,如果登录成功 - 它返回一个具有以下名称的Set-Cookie指令:".AnspNet.Microsoft.AspNet.Identity.Application"(这用于身份验证)

登录应用程序然后将用户从App1转发到App2.然后对Web api(App3)的所有后续请求进行身份验证并允许执行.注意:通过后续请求 - 特别是我的意思是,在App2中,角度调用以从Web服务请求数据.

所有这一切都很好 - 嗯,它在IE中工作正常.这引出了我的问题,为什么这不适用于Chrome?我看到"Set-Cookie"指令从chrome api Login的响应中返回,但后续请求没有附加此cookie.

我究竟做错了什么?

注意: 登录方法的我的Http响应如下所示:

    HTTP/1.1 200 OK
        Cache-Control: no-cache
        Pragma: no-cache
        Content-Type: application/json; charset=utf-8
        Expires: -1
        Server: Kestrel
        Set-Cookie: .AspNet.Microsoft.AspNet.Identity.Application=CfDJ8FWIuvXs-TxKoIYE8259iAY52B_VZDPTTvYwZ-WAo8hhPCdLhmUfxNZD1wjxEt0sqqnZl6NomwHPNTNFkBxsq4cw_WkQYklnj_dK79wodIguLdPXAbKu6UbS6HKRBxFxjOKVAfIdyxZJ6xA2CtnR9nJC_CSg7v1vFSzgDEiSBso8D3aDNjzFk8
7oIJodC7WLVxWUqdUpjaGRCXqHTYjTwgL9DCihnajAlB921_oEPinUwIPP8g_ugCQmqbFq6kgQ-GwPTifBKRlbtwNsDwbetynl1gIqzELyjgEUAKgtpD9SX7FSjl1grxoGRjbPiXJe-k1SSdnUIHR7wYPkFpiis_c_P1pGkmSyeiDG-lf0xftTlXlnC3BWMbgXeWZn_hsDzbW_Tek3qiq_NB-T0IMGaJgjRnr5DARNcOACWbzwGvHFjsn7n0u7-UZOfzgQJ76d3ra-hjra
    -aNcHLgbfDef3TK6z_CKt2iIlnTkyEJXC-3OSGnfWDRvofvQ216UApEPiKoJxiCjWSvGAQCzvf9P1TtKuwAQVxfWz8pL077E-Wfc-4ybtrT6Ivz2VbdFng5Ze5IQ5YWfYYTpDhLSHGKnpFgxVf96f7JwoXlgRq0gs7yEWdWFZs6d18pw-El5sLJr7g; path=/; secure; httponly
        Access-Control-Allow-Origin: *
        X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcUm9iZXJ0XERlc2t0b3BcSEJFIE1hbmFnZXJcTUFJTlxCbHVlem9uZSBXZWJBcGlcc3JjXEJ6LkFwcGxpY2F0aW9uXEJ6LkFwcGxpY2F0aW9uLkFwaVx3d3dyb290XGFwaVxhY2NvdW50XExvZ2lu?=
        X-Powered-By: ASP.NET
        Date: Wed, 04 May 2016 10:39:57 GMT
        Content-Length: 16
Run Code Online (Sandbox Code Playgroud)

cookies google-chrome claims-based-identity asp.net-core-mvc

11
推荐指数
2
解决办法
3039
查看次数