Моя главная цель - создать файл XML, который можно загрузить.
Приведенный ниже код успешно генерирует файл, но к представлению (/ Home / XmlView) можно получить прямой доступ.
Если я использую атрибут [Authorize] в методе XmlView (), то файл создается с HTML-кодом моей страницы входа по умолчанию.
Как заставить авторизацию работать с методом XmlView () или сделать все это более эффективно?
Я открыт для любых предложений.
Заранее спасибо.
using System;
using System.Net;
using System.Text;
using System.Web.Mvc;
using MvcProject.Core.Repositories;
namespace MvcProject.Core.Web.Controllers
{
[HandleError]
public class HomeController : Controller
{
private readonly IEntryRepository _entryRepository;
public HomeController(IEntryRepository entryRepository)
{
_entryRepository = entryRepository;
}
[HttpGet]
[Authorize]
public ActionResult Download()
{
var url = Url.Action("XmlView", "Home", null, "http");
var webClient = new WebClient
{
Encoding = Encoding.UTF8,
UseDefaultCredentials = true
//Credentials = CredentialCache.DefaultCredentials
};
var fileStringContent = webClient.DownloadString(url);
var fileByteContent = Response.ContentEncoding.GetBytes(fileStringContent);
return File(fileByteContent, "application/xml",
string.Format("newfile{0}.xml", DateTime.Now.ToFileTime()));
}
//[Authorize]
public ActionResult XmlView()
{
return View("XmlView", _entryRepository.GetAll());
}
}
}