karşısında Owin kullanıcı belirteçleri doğrulamak Her iki sitenin de kullanıldığı bir derlemede tanımlanan UserManager
. Startup.Auth.cs
, iki site için özdeştir. Bununla birlikte, ilk sitede oluşturulan bir jeton, diğerinde geçerli değildir. belirteç üretmek için ilk web sitesinde kullanılanher iki web sitesi aslında aynı kullanmak, bunu Benim durumumda web 2.</p> <p>oluşturulan web 1 ASP.NET Kimlik kullanıcı belirteçleri, doğrulamak mümkün olmadığını bilmek istiyorum oluşturun ve etki
Kodu: Sonra başka bir web sitesine sorgu parametreleri olarak geçirilen
string userId = User.Identity.GetUserId();
var manager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
string token = await manager.GenerateUserTokenAsync("SomePurpose", userId);
:
var manager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
if (await manager.VerifyUserTokenAsync(userId, "SomePurpose", token))
{
// Do something
}
Doğrulama hep bu senaryoda başarısız olur. Jetonu, oluşturulduğu aynı sitede doğrularsam geçer.
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null)
{
manager.UserTokenProvider =
new DataProtectorTokenProvider<UserProfile>(dataProtectionProvider.Create("SomeName"));
}
bu davranış kasıtlı mı veya yanlış bir şey yapıyorum: Burada
belirteç sağlayıcısı (options.DataProtectionProvider
zamanında tip CallDataProtectionProvider
taşımaktadır) ApplicationUserManager
yılında atandığı nasıl?
Jetonu aynı sitede doğrularsanız, bunu oluşturulduğu yerdeki aynı eylemle doğrular mısınız? – tmg
@tmg Aynı eylem ya da farklı eylem, her ikisi de işe yarar. – Knelis