7

基本認証をswashbuckle apiのドキュメントと統合する方法を知っている人はいますか?

swaggerconfig ファイルに basicAuth 関数があることがわかりました。

    c.BasicAuth("basic").Description("Basic HTTP Authentication");

私がやったこと:

  • 前の行のコメントを外しましたが、何も変わりません!

誰かが私が何を逃したか知っていますか?

ありがとう!

4

2 に答える 2

6

httpbasic認証を行った方法は次のとおりです。

public class AddAuthorizationHeaderParameterOperationFilter: IOperationFilter
{
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
    {
        var filterPipeline = apiDescription.ActionDescriptor.GetFilterPipeline();
        var isAuthorized = filterPipeline
                                         .Select(filterInfo => filterInfo.Instance)
                                         .Any(filter => filter is IAuthorizationFilter);

        var allowAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();

        if (isAuthorized && !allowAnonymous)
        {
            operation.parameters.Add(new Parameter {
                name = "Authorization",
                @in = "header",
                description = "access token",
                required = true,
                type = "string"                    
            });
        }
    }
}

API のユーザーは、フィールド値に basic [un:pw].tobase64 を書き込む必要があります。

参考文献: スワッシュバックル第326号 スワッシュバックル第2号

于 2015-05-14T19:01:31.043 に答える