gpt4 book ai didi

使用 token 身份验证的 Owin 托管 Web 应用程序

转载 作者:行者123 更新时间:2023-12-02 03:27:48 25 4
gpt4 key购买 nike

我正在尝试使用 token 身份验证创建一个 owin web 应用程序,我的启动没有任何特殊设置,如

中的示例

https://github.com/NancyFx/Nancy/wiki/Token-Authentication

public class Bootstrapper : DefaultNancyBootstrapper
{
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context)
{
TokenAuthentication.Enable(pipelines, new TokenAuthenticationConfiguration(container.Resolve<ITokenizer>()));
}
}

我的很简单

public void Configuration(IAppBuilder app)
{
app.UseNancy();
}

我的模块定义如下

public HomeModule(ITokenizer tokenizer)
{

Post["/login"] = _ =>
{
DefaultUserIdentityResolver resolver = new DefaultUserIdentityResolver();
//var userName = (string)this.Request.Form.Username;
//var password = (string)this.Request.Form.Password;

var claims = new List<string> { "admin", "poweruser" };

var userIdentity = resolver.GetUser("ross", claims, Context);
if (userIdentity == null)
{
return HttpStatusCode.Unauthorized;
}

var token = tokenizer.Tokenize(userIdentity, Context);

return new
{
Token = token,
};
};
}

我现在知道的不多,但是当我开始标记化时,我得到一个类型为 Nancy.ErrorHandling.RouteExecutionEarlyExitException 的异常,它在消息或堆栈跟踪中确实没有任何内容来指示问题。

我目前在 .NET 4.5.1 上的赌场中通过 http 托管

不胜感激

更新:

消息是:

Exception of type 'Nancy.ErrorHandling.RouteExecutionEarlyExitException' was thrown.

Stack trace is:
at Nancy.Authentication.Token.Tokenizer.Tokenize(IUserIdentity userIdentity, NancyContext context)
at Samaritan.Hosting.HttpServices.HomeModule.<>c__DisplayClass11.<.ctor>b__7(Object _) in c:\src\DukeSoftware\Samaritan\Main\Samaritan.Hosting.HttpServices\HomeModule.cs:line 39
at CallSite.Target(Closure , CallSite , Func`2 , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at Nancy.Routing.Route.<>c__DisplayClass4.<Wrap>b__3(Object parameters, CancellationToken context)

我尝试像这样设置 startup.cs

public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}

public class Bootstrapper : DefaultNancyBootstrapper
{
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context)
{
TokenAuthentication.Enable(pipelines, new TokenAuthenticationConfiguration(container.Resolve<ITokenizer>()));
}
}

但我得到了以下异常

{"Located multiple bootstrappers:\r\n - Samaritan.Hosting.HttpServices.BootStarapper\r\n - Samaritan.Hosting.HttpServices.Bootstrapper\r\n\r\nEither remove unused bootstrapper types or specify which type to use."}

所以我删除了 bootsrapper 并离开了 Startup。当您声明构造函数 public HomeModule(ITokenizer tokenizer) 时,实例化的分词器似乎被传递到模块中所以我不认为 tokenizer 的创建是个问题

最佳答案

你找到修复了吗?

我遇到了同样的异常。这是因为我在具有“DefaultNancyBootstrapper”类的子目录的同一目录中有 2 个 EXE 文件。

我必须使用旧的 Nancy v1.0。所以似乎除了在一个地方使用“DefaultNancyBootstrapper”之外别无他法。

关于使用 token 身份验证的 Owin 托管 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29366790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com