我试图找出是否可以配置 ServiceStack 以使用主机标头中的 API 密钥对调用进行身份验证?
我在这里找到了一个例子:http ://rossipedia.com/blog/2013/03/06/simple-api-key-authentication-with-servicestack/
但由于某种原因,在我的 Clients.cs 中,它看起来像这样:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
namespace Servicestack_MVC.Models
{
public static class Clients
{
private static Lazy<ClientSection> section = new Lazy<ClientSection>(() =>
(ClientSection)ConfigurationManager.GetSection("apiClients"));
public static bool VerifyKey(string apiKey)
{
return section.Value.Cast<ClientSection.ClientElement>()
.SingleOrDefault(ce => ce.ApiKey == apiKey);
}
}
}
我得到错误:
错误 9 实例参数:无法从“Servicestack_MVC.Models.ClientSection”转换为“System.Linq.IQueryable”和
错误 10“Servicestack_MVC.Models.ClientSection”不包含“Cast”的定义,并且最佳扩展方法重载“System.Linq.Queryable.Cast(System.Linq.IQueryable)”有一些无效参数
在 web.config 部分中,我添加了:
<section name="apiClients" type="ClientSection" requirePermission="false"/>
并添加了部分
<apiClients>
<clients>
<client name="Client1" apiKey="somelongrandomkey" />
<client name="Client2" apiKey="somelongrandomkey" />
<!-- etc -->
</clients>
</apiClients>
谁能告诉我我做错了什么?
非常感谢