私は.NETでoauthとowinの初心者です。私はこれらのメソッドValidateClientAuthenticationメソッドとGrantResourceOwnerCredentialsメソッドを理解しようとしていました。 GrantResourceOwnerCredentialsメソッドを使用して資格情報を検証し、トークンを生成できることを理解しました。次に、ValidateClientAuthentication()メソッドの目的は何か。親切に私にこのことを教えてください。どうもありがとう。OWINのoAuthでValidateClientAuthenticationメソッドとGrantResourceOwnerCredentialsメソッドの違いは何ですか?
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
return Task.Factory.StartNew(() =>
{
var userName = context.UserName;
var password = context.Password;
var userService = new UserService(); // our created one
var user = userService.ValidateUser(userName, password);
if (user != null)
{
var claims = new List<Claim>()
{
new Claim(ClaimTypes.Sid, Convert.ToString(user.Id)),
new Claim(ClaimTypes.Name, user.Name),
new Claim(ClaimTypes.Email, user.Email)
};
ClaimsIdentity oAuthIdentity = new ClaimsIdentity(claims,Startup.OAuthOptions.AuthenticationType);
var properties = CreateProperties(user.Name);
var ticket = new AuthenticationTicket(oAuthIdentity, properties);
context.Validated(ticket);
}
else
{
context.SetError("invalid_grant", "The user name or password is incorrect");
}
});
}
#endregion
#region[ValidateClientAuthentication]
public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
if (context.ClientId == null)
context.Validated();
return Task.FromResult<object>(null);
}
#endregion
こんにちは、ありがとうございます。グレート:)今私はそれらのメソッドの違いを理解している。また、私は 'validated()'メソッドについて理解しています。参照リンクは非常に便利です。よくやった。がんばり続ける。 –
私の謙虚な提案は.....あなたの良い答えを提供するたびに、コンセプトが簡単な方法でリアルタイムの例やシナリオで説明されていれば大きな価値があります。あなたの助けをたくさんありがとう:)あなたを傷つけている場合は、私の提案に申し訳ありません –