javascript - User.Identity.Name 在 Safari 浏览器上为空

标签 javascript asp.net asp.net-mvc asp.net-web-api safari

早上好。我们目前在 ASP.NET 4.5.1 上有一个 MVC 5 应用程序,我们的目标是在移动浏览器上使用它。

我们正在使用一些ajax调用来填充 View 上的一些下拉菜单,但是由于这些API调用正在使用登录用户,因此服务器拒绝来自safari的调用。 这在 iphone safari 上很明显,但在 iphone chrome 上则不然。 Controller 端看起来像这样

[HttpGet]
[Route("API/Account/Dependents/{idPlusType}")]
public IHttpActionResult GetUserOrDependantInfo(string idPlusType)
{
    ...
    string loggedOnUser = User.Identity.Name;
}

正是这部分作为 string.empty 返回

我的客户端是一个简单的 ajax 到 .get

$.ajax({
    url: path,
    dataType: "json",
    type: "GET",
    contentType: 'application/json; charset=utf-8',
    success: function (d) {
    -- Rest
    }
}

现在 fiddler 显示非常相似的请求。 Chrome 的一件已正确维修。不是来自 Safari 的那个。

Fiddler 从 iPhone 请求 Safari

    Cookie:.ASPXAUTH=0530DF01D09167C311032C3A6A258D24C20A9189FC8ACE76239016815047D4FEB5FCDDAED04E7FBCA41763388B1C655987732203CFD77D4B76C1EC3200ACCC26F61151BA77F4B6C3745C20D1D70369677814BB2A;__RequestVerificationToken_L2V6VmVyaWZ5MTIzTUhB0=Vb_TYkr-Begl4fv4JulkokhM24VFZjXjt_gHdsmz3ckfkKbBJu8YmNJcghafJ8_0Edn0Lb9SopXA7Di4fKZm6uV1AOM1;__RequestVerificationToken_L2V6VmVyaWZ5MTIzTUhBVGVzdA2=_sxROjMA7jW8PbluEKtzEOAbdJfpBDpYRWJLhwR6SDlX10UA7m7FU-6xezerP73HyqeLqrmqdYfwQfLftIhwqr5Fs0w1; ASP.NET_SessionId=dbh0kje3unlap545zeuvld31

现在可以在同一个 iPhone 上使用 Chrome。

Cookie:ASP.NET_SessionId=qgbcybtzvw2sxaa3w1yphu1z;__RequestVerificationToken_L2V6VmVyaWZ5MTIzTUhBVGVzdA2=v7ZBYrFtmg1GuuETKlIubWKr7T4Rddt1I40f9i56LzmQDI1svaw6qpk4hpuZqm_12ltrEkak9GewyhXU1rX0gQCiMvg1;__RequestVerificationToken_L2V6VmVyaWZ5MTIzTUhB0=NkM3pLoBJeYd2MTMKXwrh7dFY7uQYLGbzVN9nPy-ai7oNdmPXoxbI8Z6Xc0SGkVS3IxY-gmTTzD6m_eu2tKNjOA46jU1;.ASPXAUTH=2CBEC21CF8A3EDD3A4C6870FF4D68F16536C4CA9D87634CA4EB817589140EC85B8967C8A2F4ACAD8CF52FAAD5E4488F2210C6B75CCF55412CFA6F6ADD66323DB5072CD3622092865B214AE3626EE7A4F6BD8494B

最佳答案

我们最终从 .ajax 切换到 .getJson 函数,这有助于解决问题。 我们不确定为什么,但之后服务器端开始看到用户已通过身份验证。

关于javascript - User.Identity.Name 在 Safari 浏览器上为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28420117/

相关文章:

c# - asmx 返回值中的空属性

asp.net - 如何在iis应用程序范围内部署套接字服务器

sql - 我可以在 ASP.net MVC 中使用纯 SQL 吗?

C# mvc 图片上传调整大小服务器端

javascript - 在 Firebug/Chrome 控制台中输出 HTML

javascript - 当用户更改选项卡并返回时,停止触发事件监听器

c# - 在 asp 中的日期之后查询数据库会抛出不正确的语法异常

asp.net-mvc - ASP.NET MVC4 CustomErrors DefaultRedirect 被忽略

javascript - google-trends-api npm 找不到使用 browserify 的模块

javascript - 设置 div 容器的高度会禁用 div 内部的点击?