【问题标题】:Angularjs and WebAPI - Authentication and AuthorizationAngularjs 和 WebAPI - 身份验证和授权
【发布时间】:2017-06-04 09:13:15
【问题描述】:

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

我想实现:

  1. 它是一个 Intranet 应用程序,想要使用 Windows 身份验证。
  2. 对于授权,我们希望在数据库中维护一个包含用户名和角色列的表,并使用该表对用户进行授权。

请建议我如何使用 AngularJs 和 Web API 在我的应用程序中实现这一点。

【问题讨论】:

  • 到目前为止你尝试过什么?通常使用 Web API(即 REST)的 Javascript 前端将使用某种令牌身份验证(查看 jwt.iooauth.net/2
  • 如果它是具有 Windows 身份验证的 Intranet 应用程序,则您实际上并不需要令牌,因为对服务器的每个请求都将在 HttpContext.Current.User.Identity.Name 属性中包含用户 ID。这与您的角色表相结合,应该是您开始所需的全部内容。

标签: c# .net angularjs asp.net-web-api


【解决方案1】:

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

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

Angualr.JS 在这里根本没有真正考虑到图片 - 身份验证将由浏览器处理。您可能想要或需要的一件事是从 API 层中的 User 对象获取用户名 - 换句话说,创建一个 API 方法来返回有关登录用户的信息(包括该用户的名称,不会由 Angular.JS 应用程序管理,因为如果您使用某种其他形式的身份验证可能会这样)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2013-07-25
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多