Как отправить данные изображения только авторизованному пользователю в приложении Blazor? - PullRequest
0 голосов
/ 15 марта 2020

В своем приложении Blazor я написал логи аутентификации c, используя LocalStorage. Однако мне нужно, чтобы мое приложение отвечало данными изображения авторизованным пользователям. Я думаю, что Blazor не может понять это.

Итак, я хотел бы сосуществовать MVC контроллер в приложении Blazor и использовать ту же аутентификацию пользователя, но логика аутентификации Blazor c не работает в MVC контроллер.

У вас есть хорошие идеи? Logi c аутентификации не должен использовать LocalStorage, но аутентификация BASI C недопустима.


Я пытался:

public class MyController : Controller
{
    AuthenticationStateProvider Auth;
    public RawFileController(AuthenticationStateProvider auth)
    {
        Auth = auth;
    }
    [HttpGet("...")]
    public async Task<IActionResult> MyGet()
    {
        var authState = await Auth.GetAuthenticationStateAsync();
        Console.WriteLine(authState);
        Console.WriteLine(authState.User);
        Console.WriteLine(authState.User.Identity);
        Console.WriteLine(authState.User.Identity.Name); // output empty !!
        ...
    }
}

My AuthenticationStateProvider is здесь .

Мой Startup.cs является здесь .

Не могли бы вы дать мне какие-либо предложения?

Мой конкретный код здесь: https://github.com/kjmtks/LMS7.

1 Ответ

0 голосов
/ 16 марта 2020

На стороне MVC создайте логин (.cs html) и получите доступ к пользователю в HttpContext. На стороне Blazor вы можете использовать AuthenticationStateProvider.

var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;

. Вы можете обернуть свое изображение для аутентифицированного пользователя с помощью:

       <AuthorizeView> <Authorized> ... <Authorized> </AuthorizeView>
...