草庐IT

c# - 拒绝 token 请求时自定义 OWIN/OAuth HTTP 状态代码

我导出了OAuthAuthorizationServerProvider为了验证客户端和资源所有者。当我验证资源所有者时,我发现他们的凭据无效,我调用context.Rejected(),HTTP响应随附HTTP/400错误请求状态代码,而我期望HTTP/401Unauthorized。如何自定义OAuthAuthorizationServerProvider的响应HTTP状态代码? 最佳答案 这就是我们覆盖OwinMiddleware的方式...首先我们在Owin之上创建了我们自己的中间件...我认为我们遇到了与您类似的问题。首先

c# - 一个中间件应该总是调用下一个?

我一直在努力了解ASP.NET5管道中间件的真正工作原理。据我所知,中间件只是一个Func,它是一个指向方法的指针,该方法接收对下一个请求委托(delegate)的引用并返回一个包装下一个请求委托(delegate)的新委托(delegate)。我们当然可以使用类来表示中间件,例如:publicclassMyMiddleware{privatereadonly_next;publicMyMiddleware(RequestDelegatenext){if(next==null){thrownewArgumentNullException("next");}_next=next;}pub

c# - Hangfire 仪表板授权配置不工作

我已经下载了nu-get包Hangfire.Dashboard.Authorization我正在尝试按照如下文档配置基于OWIN的授权,但我收到智能感知错误DashboardOptions.AuthorizationFiltersisobsoletepleaseuseAuthorizationpropertyinstead我也收到智能感知错误未找到类型或命名空间AuthorizationFilter和ClaimsBasedAuthorizationFilterdusingHangfire.Dashboard;usingHangfire.SqlServer;usingOwin;using

c# - 使用 Ninject OWINHost 的 OWIN 自托管应用程序是否需要 system.web?

我正在尝试使用带有Ninject的OWIN自托管WebAPI创建Windows服务。我让它工作,但我必须添加对system.web的引用,这似乎是错误的。在没有引用system.web的情况下,我得到了这些编译错误:Thetype'System.Web.Routing.RouteCollection'isdefinedinanassemblythatisnotreferenced.Youmustaddareferencetoassembly'System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3

c# - SignInManager.PasswordSignInAsync 抛出空对象异常

AccountController.cs包含AccountController类。该类的Login方法失败。具体来说,varresult=awaitSignInManager.PasswordSignInAsync(model.Email,model.Password,model.RememberMe,shouldLockout:true);在Login方法中抛出System.NullReferenceException。我已验证model.Email、model.Password和model.RememberMe不为空。下一步是深入研究SignInManager,它是AccountC

c# - ADFS 身份验证期间的间歇性重定向循环

我正在使用Owin配置我的ASP.NETMVC5(.NET4.5、IIS7/8)应用程序以针对第三方ADFS设置进行身份验证:app.SetDefaultSignInAsAuthenticationType(WsFederationAuthenticationDefaults.AuthenticationType);app.UseCookieAuthentication(newCookieAuthenticationOptions{AuthenticationType=WsFederationAuthenticationDefaults.AuthenticationType});app

c# - OWIN 为多个路由发送静态文件

我正在制作一个位于ASP.NetWebAPI之上的SPA。我正在等待使用HTML5历史而不是#/进行历史路由,但这对深度链接造成了问题,我需要确保/和/foo/bar都返回相同的HTML文件(我的JS将呈现SPA的正确部分)。如何让OWIN/Katana为多个不同的url返回相同的HTML文件? 最佳答案 为了简单起见,同时仍然保留StaticFiles中间件的所有缓存优点等,我只是使用内联中间件重写请求路径,就像这样publicclassStartup{publicvoidConfiguration(IAppBuilderapp)

c# - 通过代码更改旧密码的 OWIN 身份密码?

我在MVC5中有一个带有OWINIdentity的Web应用程序,我想知道是否可以在不知道旧密码的情况下从代码更改用户密码。因为ChangePassword方法需要userId、oldPassword和newPassword。 最佳答案 在这种情况下,您会将ChangePassword视为重置密码。您可以通过生成token并使用该token直接使用新密码验证它来使用重置密码来实现此目的。varuserId=User.Identity.GetUserId();vartoken=awaitUserManager.GeneratePass

c# - 使用 Owinhost.exe 运行 OWIN Web 服务或控制台应用程序有什么区别

我开始开发新的Web应用程序并考虑使用OWIN。我无法从任何文档中解决的一件事是,将C#应用程序创建为控制台应用程序并从其exe文件启动它运行,或者将项目创建为类库/dll,以及使用OwinHost之间有什么区别.exe启动它。运行Owinhost.exe来启动该进程是否比将其作为控制台应用程序运行更有优势? 最佳答案 OneofthecomponentsincludedintheMicrosoftOWINcomponentsisthelightweight,console-basedOwinHost.exe.Thishostfin

c# - 动态附加 OWIN JWT 资源服务器应用程序客户端(受众)

我有一个使用OWINJWT进行身份验证的C#API。我的startup.cs(我的资源服务器)通过代码配置OAuth:publicvoidConfigureOAuth(IAppBuilderapp){varissuer="";//Apicontrollerswithan[Authorize]attributewillbevalidatedwithJWTvaraudiences=DatabaseAccessLayer.GetAllowedAudiences();//GetsalistofaudienceIds,secrets,andnames(althoughnamesareunused