在文章中,他们引用了代表中的CookieValidatePrincipalContext
代表CookieAuthenticationEvents
选项。
你必须连线它在app.UseCookieAuthentication
功能startup.cs
像这样:
app.UseCookieAuthentication(options =>
{
//other options here
options.Events = new CookieAuthenticationEvents
{
OnValidatePrincipal = UpdateValidator.ValidateAsync
};
});
而且UpdateValidator
功能将类似于:
public static class UpdateValidator
{
public static async Task ValidateAsync(CookieValidatePrincipalContext context)
{
//check for changes to profile here
//build new claims pricipal.
var newprincipal = new System.Security.Claims.ClaimsPrincipal();
// set and renew
context.ReplacePrincipal(newprincipal);
context.ShouldRenew = true;
}
}
有一个在SecurityStampValidator
类一个很好的例子你可以在github上找到:https://github.com/aspnet/Identity/blob/dev/src/Identity/SecurityStampValidator.cs
从文章中,'context'看起来像是一个CookieValid atePrincipalContext'。 – DavidG
如何访问CookieValidatePrincipalContext的方法?我一直在做这方面的研究,因为你给了我答案,但我一直无法弄清楚如何使用它。谢谢。 – Sam
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNet/Authentication/Cookies/CookieValidatePrincipalContext/ – DavidG