![](/img/trans.png)
[英]Get HttpRequestMessage from ActionFilter or ASP.NET MVC Web Controller outside of Web API
[英]ASP.NET Web API HTTPRequestMessage with CLR Object to upload file
我想使用ASP.NET Web API將文件上傳到服務器,並在標題中添加安全性令牌,並將CLR對象嵌入HTTPRequestMessage
。
我可以使用具有多部分內容類型的Web API異步找到POST文件的解決方案,但是沒有使用帶有標頭令牌的自定義HTTP請求消息上傳的解決方案...
我正在使用以下代碼
public HttpResponseMessage UploadImportFile()
{
List<string> FileIdentifiers = new List<string>();
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = ImportFileDirectory;
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(root);
try
{
// Read the form data.
Request.Content.ReadAsMultipartAsync(provider);
foreach (MultipartFileData file in provider.FileData)
{
FileIdentifiers.Add(file.LocalFileName.Replace(root, "").Replace("BodyPart_", ""));
}
return Request.CreateResponse(HttpStatusCode.OK, new FileUploadResponseType(Ackowledgememt.Success, UtcDateTime.Now, null, version, FileIdentifiers));
}
catch (System.Exception e)
{
log.Error(e);
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}
有很多方法可以在Web API中實現它。 如果您想在HTTP標頭中傳遞安全令牌,那么最好的辦法是實現添加到您的上傳文件操作中的授權過濾器。 過濾器將通過查看請求消息頭來驗證安全令牌; 如果驗證成功,請求將通過; 否則,篩選器可以引發異常(例如HttpResponseException),以便拒絕該請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.