1
我正在嘗試探索在OWIN管道中如何向用戶添加其他聲明。 我知道我可以在登錄階段或其他一些地方這樣做,可能在的Application_PostAuthenticate
部分,因爲我沒有Login
部分(這是一個Windows身份驗證應用程序),但我想知道是否有可能或者甚至更好地在OWIN管道中執行。使用Windows身份驗證在OWIN管道期間添加聲明
我的想法來自於OWIN也有一個PostAuthenticate
階段。所以,我想這一點:
app.Use((context, next) =>
{
var user = context.Authentication.User.Identity as ClaimsIdentity;
if (user != null)
{
user.AddClaim(new Claim(ClaimTypes.Role, "Admin"));
user.AddClaim(new Claim(ClaimTypes.GivenName, "Mr. Tallmaris"));
}
return next.Invoke();
});
有了一個破發點,我可以看到用戶是正確的,而且要求添加,但在我看來,我有這樣的事情:
<ul>
@foreach (var claim in ClaimsPrincipal.Current.Claims)
{
<li>@claim.Type - @claim.Value</li>
}
</ul>
但是我新增的索賠沒有顯示出來。有任何想法嗎?
我知道在應用程序級別需要添加「一些」聲明(角色來自數據庫和其他東西),但我想探索直接從OWIN管道添加某些聲明。