【问题标题】:Asp.net identity with enterprise library for web api用于 Web api 的企业库的 Asp.net 身份
【发布时间】:2015-03-06 15:26:24
【问题描述】:

我正在使用 Angular js 和 web api 实现我的项目。对于数据访问,我使用的是企业库,因为对于我的项目,我需要性能。我正在使用企业库而不是 EF 来提高性能。

为了认证和授权,我打算实现asp.net身份。

但是当我搜索教程时,Asp.net 主要是使用 EF 和代码优先的方法实现的。

对于 asp.net 身份中的数据库优先方法,我找到了一些解决方案和教程。

但我找不到在没有 EF 的情况下使用 ENTERPRISE LIBRARY 实现 ASP.NET IDENTITY 的解决方案。

如何使用企业库为 web api 实现 Asp.net Identity?

谁能提供正确和简单的教程?

【问题讨论】:

  • 您如何托管您的 WebApi ?在 IIS(可能)或自托管中?

标签: angularjs asp.net-web-api asp.net-identity enterprise-library


【解决方案1】:

我假设您将在 IIS 下托管您的 WebAPI。

您的 IIS 应用程序正在应用程序池下运行。应用程序池在某个身份下运行。 App-Pool 的默认身份是:ApplicationPoolIdentity(取决于您的 IIS 版本)

http://blogs.iis.net/webdevelopertips/archive/2009/10/02/tip-98-did-you-know-the-default-application-pool-identity-in-iis-7-5-windows-7-changed-from-networkservice-to-apppoolidentity.aspx

如果您遵循此问题的公认答案:

Login failed for user 'IIS APPPOOL\ASP.NET v4.0'

您会看到您需要为运行 App-Pool 的帐户授予 Sql-Server 权限。

快速的测试方法是为运行 AppPool 的 Identity 赋予“db_reader”角色。您将无法更新,但您应该会看到 GET http 操作有效。

您的连接字符串如下所示:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

“Trusted_Connection”表示代码将尝试使用运行代码的身份连接到数据库。

但总而言之,找出哪个身份正在运行您的 WebApi 代码......然后将此身份授予您在 Sql-Server 内的数据库的某种权利。 .......

您的另一个选择是创建一个 Sql-Server 登录(用户名/密码组合)并连接 EnterpriseLibrary 用来使用此连接凭据信息的 ConnectionString。

下面的链接称之为“标准安全”

http://www.connectionstrings.com/sqlconnection/

Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;

【讨论】:

  • 我计划使用 asp.net 身份进行身份验证和授权...是否有任何替代的身份验证和授权解决方案?或者我可以使用 asp.net 身份、Web api 和企业库..
  • 您可以使用 WebApi 和 Asp.Net Identity 和 Enterprise.Library.Data。正如我在回答中所描述的,您需要提供身份(在其下运行 asp.net)...对数据库进行身份验证和授权。
  • @granadaCoder OP 指的是 ASP.NET Identity 系统,旨在取代以前的 ASP.NET Membership 和 Simple Membership 系统,默认实现是基于 Entity Framework 的,他想要一个指针关于如何做一个基于企业库的解决方案。
猜你喜欢
  • 2013-10-16
  • 2013-09-28
  • 2017-10-22
  • 2012-06-16
  • 2020-02-05
  • 2021-06-11
  • 2016-06-09
  • 2010-12-29
  • 2012-01-03
相关资源
最近更新 更多