我坚持如何解决以下问题。 我将首先描述我的应用在一般情况下的外观。
[ASP MVC(Angular App)]
[WEB API 2]
这种情况正在发生: 用户访问应用程序并使用位于 ASP MVC应用程序中的登录表单进行身份验证并生成cookie。
现在我决定使用AngularJs添加一些功能,这些功能让我使用$ resources和 Web API 2 。但是,这些功能仅在用户获得授权时可用。
解决问题:现在我必须为 Web Api 2 的每个请求使用一个令牌来访问控制器中的不同方法。这意味着我必须再次登录用户,但这次是通过AngularJs。使用/ token route。
我该怎么做? 我应该带cookie,检查其中的凭据并将其作为身份验证请求发送? 我可以在表单身份验证中以相同的方法在 Asp MVC应用中执行某些操作吗?
请帮助我,这给了我很多开销。在30分钟内从一个简单的应用程序走到这个。甚至无法理解身份验证中的所有内容。
问候!
答案 0 :(得分:2)
我的WebAPI支持令牌和cookie身份验证。
在启动期间,我注册了如下身份验证:
private void ConfigureAuth(IAppBuilder app)
{
//Token
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
});
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnApplyRedirect = ctx =>
{
// this is to ensure that a 401 response is sent if the
// user is not authenticated, rather than redirecting to
// a logon page.
}
},
CookieDomain = ".example.com" //might not need to set this
});
}