를 사용하여 :인증합니다 나는이 솔루션이 한 번만 MVC와 웹 API 응용 프로그램을 asp.net 정체성
내가 ASP.NET MVC 사이트와 웹 API 2.0에 한 번만를 인증 할 필요를 (MVC 사이트에서 사용자 이름과 비밀번호가 올바른지 확인한 다음 Web API에서 다시 확인해야 함을 의미합니다).
저는 AngularJS와 ASP.NET MVC가 좋은 커플이 아니라고 솔직하게 생각합니다. 하지만, 그게 다야! ASP.NET MVC 사이트와 웹 API가 다른 서버에있을 수 있습니다.
MVC 응용 프로그램에서 인증 할 수있는 순간, 웹 API에서 인증을 "통과"할 수 없습니다. ASP.NET ID의 기본 코드를 사용하고 있습니다.
그래서app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
, 어떻게 내가 asp.net의 MVC에 인증 된 후 "자동으로"웹 API에서 인증 할 수 있습니다 : 그래서, 내가 가진 내 startup
클래스를 메신저?
UPDATE 주셔서 감사합니다. 현재 MVC 응용 프로그램에서 일부 요청을하고 있습니다. 그러나 이러한 요청에는 인증이 필요하지 않습니다. angularjs에서 도착한 다른 요청이 있으며 여기에는 인증이 필요합니다. 이 순간 나는 MVC 응용 프로그램에서 사용자를 인증합니다.
안녕하세요 @Derek ... 당신은 부분적으로 맞습니다 : MVC 앱에서 컨트롤러가 보호되어 있고 성공적으로 인증되었습니다. 하지만 내 웹 API는 사용자가 인증되었는지 신경 써야합니다! 그래서, 귀하의 웹 API의 소비자로 귀하의 MVC 애플 리케이션을 등록 충분하지 않습니다 – Ciccio
무엇이 웹 API를 호출 무엇입니까? MVC app ...의 범위를 넘어서서 동작 메소드에서 호출 되었습니까? 아니면 AngularJS를 통해 클라이언트 브라우저에서 API로 요청을 보내고 있습니까? 귀하의 다이어그램은 그렇지 않은 것으로 제안합니다. – Derek
상황에 따라 다릅니다 ... 프런트 엔드와 백 엔드가 동일한 시스템에있는이 순간에 AngularJs는 웹 API를 직접 호출합니다. 백엔드가 외부에서 볼 수없는 서버로 이동하는 순간에 angularJs는 MVC를 통해 웹 API를 호출합니다. 이 순간에, 당신 말이 맞아요, 제 다이어그램이 잘못되었습니다 ... (나는 그것을 바로 잡습니다) – Ciccio