使用一个登录凭据的服务
Posted
技术标签:
【中文标题】使用一个登录凭据的服务【英文标题】:Service with one login credential 【发布时间】:2014-02-26 18:33:28 【问题描述】:我正在使用 Web API 开发一个 Rest 服务。该服务仅需要一个登录凭据,因为它由第三方开发的应用程序使用。如果我将项目模板与“个人用户帐户”一起使用,我必须运行 SQL 服务器(?),这对于支持单个用户名和密码来说是一种过度杀伤力。 VS 2013 附带的 LocalDB 怎么样? 无法使用“Windows 身份验证”,因为该服务是从 Internet 访问的。
验证的正确方法是什么?是否有任何“内存中”或 Web API 附带的配置文件提供程序?我知道有 Asp.net Identity 包,但它使用实体框架作为提供者。谁能推荐一下?
【问题讨论】:
【参考方案1】:您可以为 ASP.NET 身份创建自定义存储,它可以是内存或配置文件。 Here is a tutorial on creating a custom store in ASP.NET Identity。我不会把它放在内存中,因为您很可能想要更改密码,这需要重新编译和重新部署。就我个人而言,我只会使用 SQL Express 或 SQL Compact,因为它们占用的资源最少,而且在这种情况下,重写数据存储似乎需要做很多工作而没有什么好处。
【讨论】:
【参考方案2】:无论您想如何授权调用,用户都必须存在于数据库或缓存中以检查所提供用户的有效性。 Microsoft 将为您提供开箱即用的基于 SQL Server 或他们自己的一些产品的解决方案。
如果您想实现自己的用户检查,您可能必须自己处理身份验证。这意味着您必须自己检查 HTTP 标头并自己拒绝或接受请求。
我的问题是,为什么要使用一些“内存中”提供程序?用户必须在某个地方。为什么不是 SQL Express?
【讨论】:
以上是关于使用一个登录凭据的服务的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中使用服务帐户登录 Google API - 凭据无效
WCF 服务 - ASP.net 托管 - 单点登录,如何传递凭据
需要让用户使用多个凭据登录,与使用 Gmail 服务中的其他帐户功能登录相同 - Laravel