的Web API的應用程序我有這樣的解決方案:身份驗證只是在MVC一次使用asp.net身份
我需要在ASP.NET MVC網站,在Web API 2.0只進行一次認證(我的意思是我不必檢查用戶名和密碼在MVC網站上是否正確,然後再次在Web Api上檢查它們)。
我真的認爲AngularJS和ASP.NET MVC是不是一個很好的夫婦。但是,就是這樣! ASP.NET MVC網站和Web Api可能位於不同的服務器上。
在這一瞬間我就可以在MVC應用程序驗證,我不能「通」的認證上的web API。我正在使用ASP.NET標識的默認代碼。所以,我的即時通訊類startup
我:
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);
所以,我怎麼能「自動」認證的網絡API,一旦我已經通過驗證的asp.net的MVC?
謝謝
UPDATE
我已經更新了圖像。 在這一刻,我做了一些來自MVC應用程序的請求。但是這些請求不需要認證。其他一些請求從angularjs到達,在這裏我需要身份驗證。 在這一刻我認證MVC應用程序中的用戶。
嗨@Derek ...你是正確的部分:在MVC應用程序,我有保護控制器和I已成功驗證那裏。但是我的web API必須關心用戶的身份驗證!因此,將您的MVC應用程序註冊爲您的WEB API的使用者是不夠的 – Ciccio
什麼是調用Web API?是從MVC應用程序的範圍中調用的?在其操作方法中,還是通過AngularJS從客戶端瀏覽器向api發出請求?你的圖表表明否則。 – Derek
這取決於上下文......在這個時候,前端和後端在同一臺機器上AngularJs將直接調用Web API。在後端將被移動到不可見的服務器的時刻,angularJs將通過MVC調用web api。在這一刻,你是對的,我的圖是錯的...(我更正) – Ciccio