Bunun mümkün olduğundan emin olun, ancak nasıl elde edileceğinden emin değilsiniz. Şu anda kullanıcı adı ve parola kabul eden bir OWIN OAUTH uygulaması var ve onları bir veritabanına karşı doğrular. SmartCard ile tek oturum açmayı desteklemek için bir SmartCard Uid uygulamasından geçmek için bunu genişletmek istiyorum.owin oauth ek parametreler gönderin
OWIN girişinde ek parametreler geçirebilir miyim, eğer öyleyse nasıl? Temel öneri, bir kullanıcının bir kullanıcı adı/şifre kombinasyonu ile giriş yapabilmesi veya bir SmartCard kullanıcı kimliği (eğer bir SmartCard kullanıcı arayüzünden geçiyorsa ve bu uygulama veritabanında bulunursa, uygulama kullanıcı girişi yapar)
Şu an username
, password
ve grant_type
ve bu listeye uid
eklemek ve bunu benim AuthorizationServiceProvider
'umdan kaldırmak istiyorum.
Ben OAuthGrantResourceOwnerCredentialsContext
üzerinde UserName
, Password
ve ClientId
görebilirsiniz ama ben başarmak ne çalışıyorum destek vereceğini başka özelliklerini göremez.
Bu
Şu anda benim servis sağlayıcı ben de bağlamdan UID elde edebilmek istiyorum ama yine de bunu gerçekleştirmenin göremiyorumpublic override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
var user = await this._userService.FindUser(context.UserName, context.Password);
if (user == null)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Sid, user.Id.ToString()));
identity.AddClaim(new Claim(ClaimTypes.Role, "user"));
identity.AddClaim(new Claim("sub", context.UserName));
var secretKeyBytes = Encoding.UTF8.GetBytes(user.PasswordHash);
var props =
new AuthenticationProperties(
new Dictionary<string, string>
{
{ "dm:appid", user.Id.ToString() },
{ "dm:apikey", Convert.ToBase64String(secretKeyBytes) }
});
var ticket = new AuthenticationTicket(identity, props);
context.Validated(ticket);
}
içinde ne var, herhangi bir yardım büyük beğeni topluyor.
Mükemmel teşekkürler, ilk etapta geçirilmediyse parametreyi okumak için hafif bir değişiklik yaptı, tam olarak aradığım şeyden başka, teşekkürler –
Sevindim Neil'e yardım ettim. – LeftyX
@LeftyX Merhaba. client_credentials kullanarak kendi oauth sunucumu yazmaya çalışıyorum. Ama aralarında sıkışıp kaldım. biraz yardım alabilir miyim? https://github.com/koushiksaha89/oauthserver – user3132179