我的 Blazor Web Assembly 应用程序中有这样一行:
<Calendar User="@context.User.Claims.Where(user => user.Type == "sid")"></Calendar>
Run Code Online (Sandbox Code Playgroud)
但是 VS 不喜欢“sid”用引号引起来的事实,因为它弄乱了 User="" 属性。我该如何处理?
另外,附带问题,这是在 blazor web assembly 中获取用户 ID 的正确方法吗?这似乎是最简单的方法,但我是身份验证的新手,所以我不知道这样做是否违反了最佳实践。
谢谢!
在 @ 和 C# 代码之间使用括号:
<Calendar User="@(context.User.Claims.Where(user => user.Type == "sid"))"></Calendar>
Run Code Online (Sandbox Code Playgroud)
至于您的第二个问题,假设您使用 Asp.Net 作为后端代码,您可以从HttpContext.Current.User用户请求服务器端获取 User 对象,您可以在此处阅读更多相关信息(https://docs.microsoft. com/en-us/dotnet/api/system.security.claims.claimsprincipal?view=netcore-3.1 )
您可以使用括号@( )使其成为代码块
<Calendar User="@(context.User.Claims.Where(user => user.Type == "sid"))" />
Run Code Online (Sandbox Code Playgroud)