2015-02-09 94 views
1

早上好。我們目前在asp.net 4.5.1上有一個MVC 5應用程序,我們打算用在移動瀏覽器上。Safari瀏覽器中的User.Identity.Name爲空

我們正在使用一些Ajax調用來填充視圖上的一些下拉菜單,但是由於這些API調用正在使用登錄用戶,服務器拒絕來自Safari的呼叫。 這在iphone safari中很明顯,但不是在iphone chrome上。 控制器側面看上去像這樣

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

正是這部分是什麼趕回來的String.Empty

我的客戶端是一個簡單的Ajax到不用彷徨

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

現在提琴手顯示非常相似的要求。一個來自chrome的服務正確。來自safari的那個不是。來自相同iphone一個iphone

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

現在鉻Safari的

提琴手請求。

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

你正在使用什麼樣的認證? Cookie身份驗證或令牌? – grimurd 2015-02-09 23:17:28

+0

我沒有確切的答案,但Safari瀏覽器因Cookie問題而臭名昭着,所以我會開始尋找。 – ChrisV 2015-02-10 05:51:51

+0

我們正在使用基於cookie的身份驗證。不是基於令牌的。 – 2015-02-10 18:56:32

回答

0

我們最終從.ajax切換到.getJson函數,並幫助解決了這個問題。 我們不確定爲什麼,但之後服務器端開始看到用戶認證。