我有一个ASP.net应用程序,它使用cookie来存储用户选择的语言.一切正常,除非我在localhost上.用127.0.0.1替换localhost使它再次工作......为什么?
我看到了对file://的预期限制,但我实际上找不到对localhost的预期限制的任何引用.
我无法理解的是为什么ASP.net会话(ASP.NET_SessionId)和ASP.net表单身份验证Cookie(.FSAUTHSSO)是为localhost域正确设置的,但我的cookie不是......为什么?!
我已经google了很多,没有任何作用:
那有什么关系呢?:)
为什么ASP.net cookie可以设置而我的不会?有什么不同?
最后一件事就是提到这也发生在IE上,但在FF上工作正常.
谢谢!
亚历克斯
我正在尝试在网络应用中加入谷歌分析图,以显示用户应用程序使用情况的统计数据.这是本地网址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
我的解决方案中有三个应用程序,全部内置于asp.net core 1 MVC 6中.
在应用程序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