加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 需要使用Web应用程序和Web API进行双重身份验证

发布时间:2020-12-16 03:49:30 所属栏目:asp.Net 来源:网络整理
导读:我坚持如何解决以下问题. 我将首先描述我的应用在一般情况下的外观. [ASP MVC(Angular App)] 使用Owin cookie [WEB API 2] 使用Oauth Token Bearer 这种情况正在发生: 用户访问应用程序并使用位于ASP MVC应用程序中的登录表单进行身份验证并生成cookie. 现
我坚持如何解决以下问题.
我将首先描述我的应用在一般情况下的外观.

[ASP MVC(Angular App)]

>使用Owin cookie

[WEB API 2]

>使用Oauth Token Bearer

这种情况正在发生:
用户访问应用程序并使用位于ASP MVC应用程序中的登录表单进行身份验证并生成cookie.

现在我决定使用AngularJs添加一些使我使用$resources和Web API 2的功能.但是,这些功能仅在用户获得授权时才可用.

问题所在:现在我必须为Web Api 2的每个请求使用一个令牌来访问控制器中的不同方法.这意味着我必须再次登录用户,但这次是通过AngularJs.使用/ token路由.

我该怎么做?
我应该带cookie,检查其中的凭据并将其作为身份验证请求发送?
我可以在表单身份验证中以相同的方法在Asp MVC应用程序中执行某些操作吗?

请帮帮我,这给了我很多开销.在30分钟内从一个简单的应用程序走到这个.甚至无法理解身份验证中的所有内容.

问候!

解决方法

我的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
    });
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读