小编ian*_*one的帖子

Post参数始终为null

自从升级到RC for WebAPI后,我在WebAPI上调用POST时遇到了一些奇怪的问题.我甚至回到了新项目生成的基本版本.所以:

public void Post(string value)
{
}
Run Code Online (Sandbox Code Playgroud)

并从Fiddler打来电话:

Header:
User-Agent: Fiddler
Host: localhost:60725
Content-Type: application/json
Content-Length: 29

Body:
{
    "value": "test"
}
Run Code Online (Sandbox Code Playgroud)

当我调试时,字符串"value"永远不会被分配给.它总是为NULL.谁有这个问题?

(我第一次看到更复杂类型的问题)

问题不仅仅是绑定到ASP.NET MVC 4,在安装RC后,新的ASP.NET MVC 3项目也会出现同样的问题

.net c# asp.net-web-api asp.net-web-api-routing

195
推荐指数
11
解决办法
31万
查看次数

ASP.Net Identity和IdentityServer4声明

我正在使用IdentityServer4作为OIDC提供程序和ASP.NET Core 2.0。

我已经浏览了几篇文章,以确保IdentityServer发出的声明最终出现在ClaimsPrincipal中(即Auth Cookie),并设法通过ClaimsAction过滤来实现这一点。

但是,我的问题是...当使用ASP.NET Identity(和EF后备存储)运行IdentityServer时,ASP.NET Identity属性如何映射到IDS4返回的声明。默认情况下,IDS4返回诸如...的声明。

  • “ sub”:来自IdentityUser.Id
  • “名称”:来自IdentityUser.UserName
  • “ preferred_username”:来自IdentityUser.UserName
  • “电子邮件”:来自IdentityUser.Email
  • “ email_verified”:来自IdentityUser.EmailConfirmed

我问这个的原因是我想作图

  • “ given_name”:来自IdentityUser.FirstName(扩展属性)
  • “ family_name”:来自IdentityUser.LastName(扩展属性)

因为在请求PROFILE范围时,默认情况下IDS4似乎不执行此操作。

另外,我想问一下存储用户属性的最佳实践。使用ASP.NET Identity DB时,将创建两个表...

  • AspNetUsers
  • AspNetUserClaims

因此,最佳实践是将其他用户属性添加为...

  1. IdentityUser上的属性(作为新字段添加到AspNetUsers中)或...
  2. AspNetUserClaims中的其他声明(可以在注册或登录时使用UserManager.AddClaimAsync()添加这些声明)

identityserver4

5
推荐指数
1
解决办法
357
查看次数