小编Nos*_*gUK的帖子

OpenIdConnectEvents中的AuthenticationValidated事件在AspNetCore 1.1中不存在,那么我应该在哪里添加声明客户端

我使用IdentityServer4和OpenId来验证我的MVC应用程序中的用户,并希望添加我自己的声明.但我不确定哪个OpenIdConnectEvents我应该这样做.

本教程说我......

在身份验证流程中,您可能希望修改从IDP获得的声明.在ASP.NET Core 1.0中,您可以从OpenID Connect中间件在AuthenticationValidated事件中执行声明转换.

您在AuthenticationValidated期间添加的任何声明都存储在会话身份验证cookie中.

但是,此事件在ASP.NET Core 1.1中不可用

我试图在TokenValidated事件中做到这一点..

var principal = context.Request.HttpContext.User;
principal.Identities.First().AddClaim(new Claim("TenantId", user.TenantId.ToString()));
Run Code Online (Sandbox Code Playgroud)

但是当我在身份验证后列出用户声明时,它未列出.

@foreach (var claim in User.Claims)
{
    <dt>@claim.Type</dt>
    <dd>@claim.Value</dd>
}
Run Code Online (Sandbox Code Playgroud)

c# openid asp.net-core-mvc identityserver4

2
推荐指数
1
解决办法
1026
查看次数

Knockout.js - 只在ajax保存后更新observable?

我看了一遍,无法真正找到解决问题的优雅方案......

<div class="viewPerson">
     <strong>Name:</strong> <span data-bind="text: Person.Name"></span>
</div>

<div class="editPerson">
    <strong>Name:</strong> <input type="text" data-bind="value: Person.Name">  </span>
    <input type="submit" value="Save" data-bind="click: Save" />
</div>
Run Code Online (Sandbox Code Playgroud)

我在一个页面(Knockout 2.2.1)上有两个数据绑定用于同一个字段(Name),一个在我的"View Div"中,一个在我的"Edit Div"中.有没有一种简单的方法让我说不要更新"View Div",直到它被保存回数据库.

这是jsfiddle中的一个例子http://jsfiddle.net/NoseBagUK/bvw4j/3/

到目前为止,我所拥有的最好的方法是拥有Person对象的两个副本,一旦ajax魔法发生,我就有了一个同步两个Person对象的函数.喜欢这个.. http://jsfiddle.net/NoseBagUK/jjK4j/1/

任何帮助非常感谢.

菲尔

knockout.js

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