我有一些问题,使工作第二次供应商在同一时间的服务。我使用的是:JWT令牌--允许用户使用JWT令牌进行身份验证,是我的用户,可以很好地进行身份验证。
现在我还是想使用access -允许用户为一些外部第三方用户访问使用access进行身份验证。
不过,当我配置两个用户时,通过JWT令牌进行身份验证已经不再有效了。
下面是我的配置AuthProvider配置:
IAuthProvider[] providers = new IAuthProvider[]
{
new JwtAuthProviderReader(this.AppSettings)
{
HashAlgorithm = "RS256",
PrivateKeyXml = this.AppSettings.GetString("TokenPrivateKeyXml"),
PublicKeyXml = this.AppSettings.GetString("TokenPublicKeyXml"),
RequireSecureConnection = this.AppSettings.Get<bool>("TokenUseHttps"),
EncryptPayload = this.AppSettings.Get<bool>("TokenEncryptPayload"),
PopulateSessionFilter = (session, obj, req) =>
{
ApplicationUserSession customSession = session as ApplicationUserSession;
if (customSession != null)
{
customSession.TimeZoneName = obj["TimeZoneName"];
customSession.Type = (FbEnums.UserType) (obj["UserType"].ToInt());
if (Guid.TryParse(obj["RefIdGuid"], out Guid result))
{
customSession.RefIdGuid = result;
}
}
},
},
new ApiKeyAuthProvider(AppSettings)
{
RequireSecureConnection = false
}
};我正在用JwtAuth生成标记。不过,servicestack似乎不接受我的令牌作为有效会话,因为现在每当我这样做的时候:
var session = httpReq.GetSession();
session.IsAuthenticated ->总是错误的
如果我将ApiKeyAuthProvider从配置中删除,则JwtAuth中的令牌再次正常工作。
如何使两个提供程序协同工作,并告诉servicestack,一些用户将使用JwtAuth,而其他用户将使用ApiKeyAuth?
发布于 2017-11-15 16:58:04
您需要调用需要身份验证的服务,例如具有[Authenticate]属性,以便为IAuthWithRequest提供程序(如JWT和API )触发预身份验证。
https://stackoverflow.com/questions/47308340
复制相似问题