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