C# Angularjs和WebAPI-身份验证和授权

C# Angularjs和WebAPI-身份验证和授权,c#,.net,angularjs,asp.net-web-api,C#,.net,Angularjs,Asp.net Web Api,我想在我的应用程序中实现身份验证和授权。我正在使用AngularJs和ASP.NET Web API开发我的应用程序 我想实现: 它是一个intranet应用程序,希望使用windows身份验证 对于授权,我们希望在数据库中维护一个包含username和role列的表,并使用该表授权用户 请建议如何使用AngularJs和Web API在我的应用程序中实现此功能。设置您的Web API库以使用Windows身份验证。将您的[Authorization]属性添加到控制器。您的启动逻辑当然可以从数据

我想在我的应用程序中实现身份验证和授权。我正在使用AngularJs和ASP.NET Web API开发我的应用程序

我想实现:

  • 它是一个intranet应用程序,希望使用windows身份验证
  • 对于授权,我们希望在数据库中维护一个包含username和role列的表,并使用该表授权用户

  • 请建议如何使用AngularJs和Web API在我的应用程序中实现此功能。

    设置您的Web API库以使用Windows身份验证。将您的
    [Authorization]
    属性添加到控制器。您的启动逻辑当然可以从数据库中提取角色名称,并将这些角色添加到控制器/方法的
    [Authorization]
    属性中

    不过,我不知道我是否会按每个用户名执行此操作-如果我使用Windows Auth,我会创建一些角色(例如管理员、用户)并通过广告控制这些角色。然后,我只需将广告组名称存储为我的角色名称


    在这里,Angualr.JS实际上并没有在图片中加入太多的因素——身份验证将由浏览器处理。您可能想要或需要的一件事是通过某种方式从API层中的
    user
    对象获取用户名,换句话说,创建一个API方法来返回有关登录用户的信息(包括该用户名,Angular.JS应用程序不会像您使用其他形式的身份验证那样管理该用户名)。

    到目前为止您尝试了什么?通常使用web API(即REST)的Javascript前端将使用某种令牌身份验证(查看和)如果是具有Windows身份验证的intranet应用程序,则不需要令牌,因为对服务器的每个请求都将在
    HttpContext.Current.user.Identity.Name
    属性中包含用户ID。这与您的角色表相结合,应该是您开始使用的全部内容。