客戶端應用程序正在將「塊」中的音頻文件上傳到MVC3站點。客戶使用HttpWebRequest
POST
來做到這一點。在ASP.NET MVC3應用程序中同時有多個身份驗證提供程序?
在服務器上,我有以下控制措施:
[Authorize]
[HttpPost]
public JsonResult RecieveChunk(string id, [ModelBinder(typeof(AudioChunkModelBinder))] byte[] audio)
{
//Process chunk
var chunk = new AudioChunk
{
ThoughtId = Guid.Parse(id),
Data = audio
};
//Process chunk by BL
return new JsonResult {Data = "Success"};
}
目前,內置AspNetMemebershipProvider
正在處理的授權,所以客戶端應用程序必須先在登錄頁面進行驗證,獲取餅乾到一個CookieContainer
然後打電話給服務器上傳一大塊數據。
我想允許客戶端也能夠匿名上傳音頻文件到服務器,而無需以前註冊。他們的客戶端應用程序代碼將在每次從同一設備上傳文件時提供相同的guid。
我希望這兩類用戶共享相同的RecieveChunk
操作。但是它們必須以匿名形式(只有)或登錄/合併組合進行驗證。
我可以將兩個不同的控制器鏈接到兩個不同的身份驗證提供程序嗎?第三個控制器具有[Authorize]
標記的操作,如果其中一個提供者向用戶提供cookie(或其他認證方法),則允許執行操作。
在ASP.NET MVC3中一般可能嗎?
從你這裏說的是什麼,你的上傳行動不*要求授權,所以不應該具有該屬性。相反,您應該使用Action中的代碼來確定它們是否已登錄,並據此採取行動。 – 2012-01-19 00:35:19
是的,這就是我正在做的。所以我假設答案只是 - 不,只有一個成員資格提供程序的實現在整個應用程序範圍內同時執行? – 2012-01-19 00:40:54
嗯,不;這不是你在做什麼。您有那裏的授權屬性。此外,根據定義,匿名用戶*未經過身份驗證*。所以你要找的是*不是*多個會員提供商。 – 2012-01-19 00:43:12