我有2个应用程序,一个MVC 5主站点(A)和一个Web Api 2从端点(B)托管在访问1个数据库的两台不同计算机上。
这些应用程序应基于表单身份验证共享身份验证和授权。推荐的实现该方法的方式是什么,使其一旦在(A)上进行身份验证:
我尝试使用身份验证cookie,例如:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieName = "DefaultCookie",
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/auth/login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User>(
validateInterval:TimeSpan.FromMinutes(20),
regenerateIdentity: (manager,user) => user.GenerateUserIdentityAsync(manager))
}
});
但是我还没有完全成功。
答案 0 :(得分:1)
您可以自己动手,但IdentityServer4可以执行这种操作。粗放1)MVC认证; 2)MVC获取ID令牌; 3)将请求传递给具有ID令牌的Web API; 4)Web API检查令牌是否有效并获得声明; 5)如果用户被授权,请执行操作; 6)只要令牌有效,请重复3-5。