我使用ASP.NET MVC 4與網頁API傳遞用戶名的Web API方法在ASP.NET MVC 4
我有以下ApiController。
public class ProductsController : ApiController
{
public List<Product> GetProducts()
{
return _productService.GetAllProducts();
}
public List<Product> GetProductsFromId(string username)
{
return _productService.GetProductsFromUsername(username);
}
}
現在,如果你看到第二個動作GetProductsFromId(string username)
這裏我需要通過較早(即從MVC 3升級前)我是用User.Identity.Username
來獲取用戶名用戶名。
我應該如何處理這種情況。
如何傳遞用戶名?有什麼我可以做的。
此外,我不想在GetProductFromId(string username)
方法內使用User.Identity.Username
,因爲它將打敗使用web api的整個目的,也不會被測試。
請指導我幫我解決這個問題。由於
是,首先感謝的答案,我真的不知道你可以嘲笑用戶屬性,你能指出我在這個PLS上的一些鏈接。還有,如果我**希望**通過用戶名作爲參數,有沒有辦法/黑客來處理? – Yasser
你想通過用戶名作爲參數嗎?這不會完全擊敗認證的目的陽離子?客戶可以通過他喜歡的任何用戶名。但是,當然如果你想這樣做,那麼簡單地把它作爲一個動作參數。然後,在調用該方法時,您可以將其作爲查詢字符串參數傳遞。但即使你想通過用戶名作爲參數,我建議你使用自定義處理程序(看看我寫的),並將其存儲到User.Identity.Name中。至於嘲笑用戶名屬性,給我1秒提供一個例子。 –
是啊當然,我正在做的暴露一個API可以輸入用戶名和獲得與他相關的產品,可以使用1. web應用程序和任何人可以使用瀏覽器打這個網絡方法。 (是的,每個人都應該能夠獲得任何人的數據) – Yasser