2015-11-05 2 views
0

Мой проект C# MVC имеет логику авторизации в промежуточном ПО Owin, и я хочу отображать сообщение об ошибке в браузере, когда пользователь не авторизован. Мой подход заключается в использовании метода Response.WriteAsync() в промежуточном программном обеспечении Owin для отображения страницы. Содержимое Response.WriteAsync() происходит от отдельной страницы «error.html», и я использую File.ReadAllText() для чтения содержимого.C# Добавление изображения в Owin Context.Response

У меня есть "error.html" страница:

... 
<body> 
    <image src = "errorImage.gif"> 
    <p>Not Authorized</p> 
</body> 
... 

Owin Middleware:

public class middleware : OwinMiddleware 
{ 
    public async override Task Invoke(IOwinContext context){ 

     var errorPage = File.ReadAllText("error.html"); //Here I am reading the html page 
     if(not_authorized){ 
       context.Response.WriteAsync(errorPage); // Displaying the page 
     } 

     await Next.Invoke(context); 

    } 

} 

Проблема этого подхода заключается в том, я не могу отобразить изображение, связанный с Страница «error.html», так как изображение находится на сервере. Есть ли способ отображения страницы ошибки с изображением в этом случае?

ответ

0

передать изображение в виде строки base64, то в качестве ссылки SRC тега изображения из base64 строки:

<img src="data:[imgType ie: image/gif];base64,[base64StringYouPassedDown]" />