我試圖從將使用令牌承載並將包含所有身份驗證業務邏輯的身份驗證服務器分開ASP.Net MVC登錄客戶端。這兩件事情坐在兩個不同的webrolesASP.NET MVC登錄客戶端/ ASP.NET WebAPI身份驗證/授權服務器分離
我使用當前的身份2.0的實現很多。
UserManager和UserStore位於AuthServer中,登錄客戶端對userId一無所知。只有用戶名。
現在,生成的客戶端項目的用戶的要求,我用這個實現:
public async Task<ClaimsIdentity> GenerateUserIdentityAsync()
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var claims = new List<Claim>()
{
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", this.UserName),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", this.UserName),
new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity"),
};
var claimsIdentity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
//var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return claimsIdentity;
}
正如你所看到的,我擺脫了經理的位置,但我怕我」 m缺少一些安全功能,如Startup.Auth.cs中使用用戶的SecurityStamp的CookieAuthenticationProvider。
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync())
}
我試着打它調用manager.CreateIdentityAsync(這一點,DefaultAuthenticationTypes.ApplicationCookie)函數AuthServer的的GenerateUserIdentityAsync但我需要爲......的事情,客戶端一無所知的用戶ID。
任何想法? CreateIdentityAsync的代碼似乎不是開源的。
感謝和抱歉的長篇文章。
哦,基於這裏說的是什麼:http://stackoverflow.com/questions/23814356/manually-validating-a-password-reset-token-in-asp-net-identity –