首页 > 解决方案 > blazor webassembly windows 身份验证 + .netcore 托管

问题描述

我仍在学习 blazor 并想在其中提出一些解决方案,但要求是使用 windows auth 之类的东西(用户登录就足够了)我知道 windows auth 现在还没有实现/可用 - 将来会吗?

所以场景是:

- 在浏览器中运行 wasm

-实施

  public class MyAuthStateProvider: AuthenticationStateProvider

  Task<AuthenticationState> GetAuthenticationStateAsync()

- 在那里获取 Windows 用户名(如何!?)

- 使用此用户名向 api 发布一些帖子,从 api 获取现有 DB + 令牌中的所有用户信息,以进行下一次 api 调用

-把它还给wasm然后走。

有人可以指点我的方向吗?我搜索了很多,但大多数解决方案都是由于 serwer-side blazor - 我需要它。我还发现很多在服务器端实现新的自定义授权、自定义注册等 - 我已经与我的用户拥有数据库..

还是应该以完全不同的方式制作?

谢谢并恭祝安康

标签: c#authenticationblazorblazor-webassembly

解决方案


d00lar 控制器对我不起作用,但这有效:

反而

return Ok(this.httpContextAccessor.HttpContext.User.Claims.Where(p => p.Type== ClaimTypes.Name).FirstOrDefault().Value.ToString());

我用了

[HttpGet]
[Authorize]
[Route("winuserid")]
public async Task<string> GetUserID()
{
    string userid;
    userid = User.Identity.Name;
    return userid;
}

我也必须添加

       app.UseAuthorization();

在服务器项目 Startup.cs


推荐阅读