MVC5 OWIN ws-federation AuthenticationManager.GetExternalLoginInfoAsync()返回null
我正在尝试在Visual Studio 2013中一个新的MVC 5项目中设置Integup Owin WS-Federation(ADFS)身份验证. app.UseWsFederationAuthentication(wtrealm: "MyRealm", metadataAddress: "https://myADFSInstanceHost/FederationMetadata/2007-06/FederationMetadata.xml"); 登录页面上的联邦按钮正常工作. ADFS登录页面是可以实现的,我可以在那里登录. 所需的cookie似乎是正确设置的.至少通过.aspnet.externalcookie cookie. 但是,当执行对MVC应用程序的回调时,在externalloginCallback控制器AuthenticationManager.getExternalloginInfoasync()返回始终为null.
4 2024-01-19
编程技术问答社区
认证/授权MVC 5和Web API-Katana/Owin
我遇到问题,试图决定采用我拥有的项目的路线. 我一直在阅读.NET中的OWIN规格和Katana实现.我想选择Katana路线的原因是因为与ADF和令牌/Cookie Generation相关的OWIN组件. 我有两个项目,一个用于MVC 5网站,一个用于Web API.他们将来可能会有两个单独的服务器中的其余部分,但是现在它们处于相同状态. 我知道我将使用IIS,所以OWIN管道对我来说不是必需的. 我的要求是,将有一些用户登录使用ADF,而其他将登录使用令牌/Cookie生成的用户,以及角色/会员资格提供商.根据对谁的身份验证,我的网页的某些部分将被暴露.网页工程师在剃须刀中完成. 有人可以阅读任何材料来帮助解释我可以采用的设计流程吗?还是任何人都做了一个类似于我正在添加任何建议的项目?有很多不同的文档描述了我需要的特定内容,但不是全局.就像谈论WebAPI和ADF,Webapi和Windows Azure等 我的理论是在MVC5网站项目,Web AP
0 2024-01-19
编程技术问答社区
使用OWIN Ws-Federation包对ADFS 3.0进行认证
我有一个MVC Intranet网站,需要使用AD帐户进行身份验证. i设置ADFS 3.0(Win Server 2012 R2),然后遵循 this 设置依赖党派信任的ADFS. >此其他帖子介绍了WS-Federation Owin组件,我想使用它.它提到了如何连接到Azure广告,但与ADF有关. 我尝试设置配置属性" metadataaddress"和" wtrealm"以匹配我在ADF中配置的内容,但是在运行时我会遇到错误: A default value for SignInAsAuthenticationType was not found in IAppBuilder Properties. This can happen if your authentication middleware are added in the wrong order, or if one is missing. 我正在寻找正确的方法删除此错误 解决方案
0 2024-01-19
编程技术问答社区
OWIN认证管道如何正确地使用Katana中间件?
我希望使用WSFEDERATION身份验证对内部ADFS 2服务并使用Owin Authentication Pipeline. 什么是应该连接中间件的顺序,在各种情况下都需要哪些模块? ? 例如,似乎应该与UseCookieAuthentication一起使用UseWsFederationAuthentication,但我不确定正确的AuthenticationType是什么( this 帖子表明它只是一个标识符字符串,但是它的价值是显着的吗?)需要使用SetDefaultSignInAsAuthenticationType. 我还注意到 this 在katana项目讨论板上的线程错误,但对于代码的哪一部分错误不是很具体. 以下(使用自定义的SAML令牌处理程序读取令牌字符串中的有效XML文档),但是它是否最佳? var appURI = ConfigurationManager.AppSettings["app:URI"]; var fedPassiv
2 2024-01-19
编程技术问答社区
在UseJwtBearerAuthentication中无法验证令牌。授权已被拒绝
使用单个ASP.NET(4.6.1)Web项目,显然我无法验证在同一服务器上生成的JWT令牌. startup.cs : var secret = Encoding.UTF8.GetBytes("12341234123412341234"); var jwtFormatter = new CustomJwtFormat("Any", "local", secret); // This part checks the tokens app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalBearer, AuthenticationMode = Authenticat
2 2024-01-10
编程技术问答社区
Owin获取查询字符串参数
我试图从OWIN请求中获取查询字符串参数.尽管此参数位于查询字符串中,但获取参数"测试"的操作仍然为空.如何从Owin主机读取请求参数? 呼叫: localhost:5000/?test=firsttest 代码: public class Startup { public void Configuration(IAppBuilder app) { app.UseHandlerAsync((req, res) => { string paramTest = req.Get("test"); return res.WriteAsync(paramTest); }); } 解决方案 Get在OWIN环境字典中查找任何键.但是,个人获取请求参数并不是该字典的一部分.您可
6 2024-01-05
编程技术问答社区
在停止自我托管的OWN服务器时完成当前的请求
我将OWIN服务器作为控制台应用程序的一部分.您可以在此处看到主要方法: class Program { public static ManualResetEventSlim StopSwitch = new ManualResetEventSlim(); static void Main(string[] args) { Console.CancelKeyPress += (s, a) => { a.Cancel = true; StopSwitch.Set(); }; using (WebApp.Start("http://+:8080/")) { Console.WriteLine("Server is running..."); Console.Write
2 2024-01-04
编程技术问答社区
Owin中的Global.asax中是否有Application_End?
Startup.cs 是在global.asax中初始化应用程序而不是Application_Start的新方法,这很好.但是,有一个地方可以放下我的拆卸逻辑,例如: public class WebApiApplication : System.Web.HttpApplication { protected void Application_End() { // Release you ServiceBroker listener SqlDependency.Stop(connString); } } 在 microsoft.owin 名称空间,但似乎只有OwinStartupAttribute.这是否意味着应用程序生命周期事件仍由System.Web.HttpApplication实例处理,并且不受OWIN规范的支持? 解决方案 AppProperties,在Microsoft.Owin.BuilderProperties中发现,暴露于C
6 2024-01-03
编程技术问答社区
在ASP.NET Core中向Startup类传递命令行参数
我有通过命令行 传递的参数 private static int Main(string[] args) { const string PORT = "12345" ; var listeningUrl = $"http://localhost:{PORT}"; var builder = new WebHostBuilder() .UseStartup() .UseKestrel() .UseUrls(listeningUrl); var host = builder.Build(); WriteLine($"Running on {PORT}"); host.Run(); return 0; } 这些参数之一是记录输出目录.我如何将此值纳入我的Startup类,以便在收到请求时可以将此目录写入此目录? 我想避免使用静态类.提供价值的服务
2 2024-01-03
编程技术问答社区
在上下文中没有发现OWN.Environment项目。
Microsoft最近引入新的ASP.NET身份 - 替换旧(简单)成员.不幸的是,我无法在旧项目中使用这个新的会员系统,因为它会引发系统.InvalidoperationException:在上下文中找不到OWIN.环境项目.这是一个已知的看起来.NET存储与原始名称空间相关的某个位置,但是我找不到什么和在哪里,它不在项目文件夹中.我知道stackoverflow不是一个错误报告的地方,我只是希望有人已经找到了这个问题的解决方案,或者可能会看到参与ASP.NET身份的人们会看到这一点. 解决方案 很可能找不到OWIN启动类.启动类的默认约定是[assemblyName] .startup.如果您不再遵循该约定,则需要在Web.config中指定启动类的全名. Microsoft.OWIN.HOST.SYSTEMWEB软件包的下一个版本现在在找不到启动类时会引发详细的异常消息. 其他解决方案 我遇到了同样的问题,在确保此行在web.config: 之后是修复的:
2 2024-01-03
编程技术问答社区
验证JWT签名时出现SecurityTokenSignatureKeyNotFoundException
我正在尝试为我的组织实施OpenID连接规范.我正在使用Microsoft的OWIN实现OpenID Connect在测试依赖方应用程序中来验证我对协议的实现. 我已经暴露了以下元数据文档: { "issuer": "https://acs.contoso.com/", "authorization_endpoint": "http://localhost:53615/oauth2/auth", "token_endpoint": "http://localhost:53615/oauth2/token", "userinfo_endpoint": "http://localhost:53615/connect/userinfo", "jwks_uri": "http://localhost:53615/connect/keys", "ui_locales_supported": [ "en-GB" ] } 签名密钥被视为此文档:
2 2023-12-15
编程技术问答社区
OAuth 2中访问令牌的撤销实现
我已经使用Owin Oauth 2来实现我的授权服务器提供商.现在,我想实现令牌吊销(当我的客户端应用程序要注销时). 有人可以帮助我,并告诉如何在Owin Katana Oauth 2中实施令牌撤销2.是否有一些好的实践? 解决方案 OAUTH 2.0中涉及两种令牌.一个是访问令牌,另一个是刷新令牌. 对于刷新令牌,我真的推荐使用ASP.NET Web API 2,OWIN和身份的基于令牌的身份验证由Taiseer Joudeh撰写.他为设置基于令牌的身份验证提供了一个逐步的教程,包括撤销刷新令牌. 对于访问令牌,我使用黑色列表来存储被撤销的访问令牌.当用户登录时,我将用户的当前访问令牌添加到黑色列表中.如果有新的请求,我首先检查其访问令牌是否在黑色列表中.如果是,请拒绝请求,其他明智的话让OAuth组件进行验证. 这是一些实现详细信息: 我使用缓存用作黑色列表,并将缓存项目的到期设置为访问令牌的到期.缓存项目(访问令牌)将在其到期后自动从黑色列表中删
18 2023-12-02
编程技术问答社区
如果在IIS Express中没有将项目设置为启动,OWIN就不会启动。
我在VS2013中具有以下设置: 的解决方案 app.web(仅具有静态文件的Web项目) app.web.api(with owin Web API项目) 两个项目都有一个默认的URL指向其自己的 localhost:portx(我正在使用iis express),所以app.web在localhost上听:2222和app.web.api正在听.在Local主持:3333. 我设置了app.web.api使用owin,然后添加了软件包 microsoft.owin.host.systemweb in autofire in iis in iis. 我在OWIN启动类的配置方法中放了一个断点. 当我将app.web.api设置为VS2013中的"启动项目"时,断点被打击了. 但是,一旦我将app.web设置为"启动项目",然后从浏览器开始,我向app.web.api提出请求,启动类别的断点不再被打入. 我试图遵循网上发现的一些建议(使用Owin
2 2023-11-24
编程技术问答社区
为什么ASP.NET SPA模板对所有请求都要实例化一次UserManager?
我正在使用VS2013 ASP.NET SPA模板作为使用新ASP.NET身份框架的Web应用程序的起点.这是来自模板: public partial class Startup { static Startup() { UserManagerFactory = () => new UserManager(new UserStore()); .... } 因此,由于没有将dbcontext传递到上面的userstore构造函数中,这向我表明正在创建一个新的dbcontext.由于我也想利用数据上下文(对于请求期间的其他数据操作),因此我稍微更改了模板代码: public partial class Startup { public static DerivedDbContext=null; static Startup() { context = new De
我如何要求Owin/Katana向输出流写入头文件?
当我写信给响应时,Katana跳过发送了经过的时间响应标题.在第一次写入流之前,我该如何为我设置标头? 中间件#1 public override async Task Invoke(IOwinContext context) { var stopwatch = new Stopwatch(); stopwatch.Start(); await Next.Invoke(context); stopwatch.Stop(); context.Response.Headers.Add("Elapsed-Time", new[] {stopwatch.ElapsedMilliseconds.ToString()}); } 中间件#2 public override async Task Invoke(IOwinContext context) {
22 2023-09-30
编程技术问答社区
我怎样才能在自定义的Owin中间件中安全地拦截响应流?
我正在尝试编写一个简单的 owin 中间件,以拦截响应流.我要做的是用基于自定义流的类替换原始流,我将能够拦截写入响应流. 但是,我面临一些问题,因为我不知道何时由链中的内部中间件组件完全编写了响应.流的Dispose覆盖从未被调用.所以我不知道何时该执行我的处理,这应该在响应流的末尾发生. 这是一个示例代码: public sealed class CustomMiddleware: OwinMiddleware { public CustomMiddleware(OwinMiddleware next) : base(next) { } public override async Task Invoke(IOwinContext context) { var request = context.Request; var response = context.Response;
16 2023-09-30
编程技术问答社区
OWIN为多条路线发送静态文件
我正在制作位于ASP.NET WebAPI顶部的水疗中心.我正在等待使用HTML5历史记录,而不是#/进行历史记录路由,但这给深度链接带来了一个问题,我需要确保/> and /foo/bar都返回相同的HTML文件(我的JS将渲染水疗中心的右侧). 如何让OWIN/KATANA返回多个不同URL的同一HTML文件? 解决方案 使事情变得简单,同时仍然保持所有缓存优点等.从staticfiles中间件中,我只是使用内联中间件重写请求路径,例如此 public class Startup { public void Configuration(IAppBuilder app) { app.Map("/app", spa => { spa.Use((context, next) => { context.Request.Path = new Pat
18 2023-09-04
编程技术问答社区
Microsoft.Owin类型,如OwinMiddleware和IOwinContext,是否与其他Owin服务器不兼容?
如果我使用Microsoft.Owin类型(例如Owinmiddleware和Iowincontext)构建OWIN中间件,我的中间件能否与非Microsoft Owin Hosts/Servers一起使用?我正在寻找 nancy 和 signalr =" http://katanaproject.codeplex.com/sourcecontrol/latest#src/microsoft.owin/owinmiddleware.cs"> owinmiddleware.cs"> owinmiddleware base类,像cookieigation Middleware and webapi 基于.我正在阅读规格,但是我仍然不清楚非Microsoft Owin Server是否可以与Owinmiddleware和Iowincontext类型一起使用,而无需依赖Microsoft.Owin(我猜这会击败Owin的目的). 解决方案 如果您使用OWINMIDDLEWARE类型构建中
54 2023-09-03
编程技术问答社区
用OWIN添加多个WWW-Authenticate头文件
我希望我们的服务宣传多个身份验证方案:例如,携带者和某些自定义方案(例如X-Custom). (我为每个方案都有一个OWIN中间件组件).我从 SEC 14.47 有多种方法可以这样做: 选项a)多个标头 WWW-Authenticate: Bearer WWW-Authenticate: X-Custom 选项b)逗号分隔列表 WWW-Authenticate: Bearer, X-Custom 我的偏爱是选项a),因此客户只需要做Response.Headers.Exists("WWW-Authenticate", preferredScheme)之类的事情,而不是逗号解析标题(RFC说应该应该,但是...) ) 但是,Katana使用字典用于标题.试图添加第二个标头将带有"键'www-authenticate"的异常. 中间件组件是否有一种方法可以注入一个以上的www-partenticate标题? 解决方案 它是IDictionary
26 2023-08-10
编程技术问答社区