我正在學習如何使Asp.Net MVC標識2.0正常工作。解析OAuth承載認證的ASP.NET MVC標識
我有這樣的代碼,對OAuth的承載作品
[HttpGet]
[ActionName("Authenticate")]
[AllowAnonymous]
public String Authenticate(string user, string password)
{
if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(password))
{
return "Failed";
}
var userIdentity = UserManager.FindAsync(user, password).Result;
if (userIdentity != null)
{
if (User.Identity.IsAuthenticated)
{
return "Already authenticated!";
}
var identity = new ClaimsIdentity(Startup.OAuthBearerOptions.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, user));
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userIdentity.Id));
AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
var currentUtc = new SystemClock().UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(1));
string AccessToken = Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket);
return AccessToken;
}
return "Failed in the end";
}
這裏是
//This will used the HTTP header Authorization: "Bearer 1234123412341234asdfasdfasdfasdf"
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
我已經看過了ClaimsIdentity和AuthenticationTicket和我的源代碼Startup.Auth.cs代碼沒有看到票證是如何註冊身份的。
我的問題是這張票是如何在Owin管道註冊的?
我的目標是在可能的情況下撤銷此票。
在此先感謝。
謝謝您的回覆。是的,我學習了Taiseer的教程,它非常好。我發佈的代碼也同樣適用。我想知道是否有任何方法可以撤銷票證? – superfly71
@ superfly71我更新了帖子。我認爲你需要實現刷新令牌來實現你想要的。 – BBauer42
我實際上採用了您提供的鏈接中提到的黑名單方法。我只是希望有一個更好的方法。無論如何,謝謝! – superfly71