【问题标题】:ServiceStack CredentialAuthProvider with more than User/Password具有多个用户/密码的 ServiceStack CredentialAuthProvider
【发布时间】:2012-09-27 19:48:19
【问题描述】:

我想使用自定义身份验证提供程序,但我不知道如何使标准身份验证内容更多地处理用户和密码作为参数。

这个可以吗?

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    取决于你想做什么,如果你想通过从 CredentialsAuthProvider 继承来创建自己的自定义身份验证提供程序,你可以通过 IHttpRequest 对象访问不同的请求参数:

    public virtual bool TryAuthenticate(IServiceBase authService, 
        string userName, string password)
    {
        var httpReq = authService.RequestContext.Get<IHttpRequest>();
        var fromQueryString = httpRequest.QueryString["CustomField"];
        var fromPostData = httpRequest.FormData["CustomField"];
        var fromEither = httpRequest.GetParam("CustomField"); //Ext method
    }
    

    以下是一些其他相关问题和答案,展示了自定义 ServiceStack 内置身份验证的不同方法:

    【讨论】:

    • 谢谢黛米斯。我可能会完全放弃自定义身份验证。我的需求非常独特,用户/密码的概念对我的模型并没有真正意义,而且在 CustomAuth 中穿鞋似乎是一种黑客行为。真正的问题是我一直在努力保留一个会话令牌,每个“需要会话”的服务都需要通过。首先想到的是 cookie(似乎不安全),接下来是 Authentication 标头,这似乎我对客户端的要求太高了(并将我锁定在 http 中),所以我很可能会将令牌作为接口添加到每个DTO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多