Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在同一MVC应用程序中同时使用OWIN Cookie身份验证和Windows身份验证_C#_Asp.net Mvc 5_Windows Authentication_Owin - Fatal编程技术网

C# 在同一MVC应用程序中同时使用OWIN Cookie身份验证和Windows身份验证

C# 在同一MVC应用程序中同时使用OWIN Cookie身份验证和Windows身份验证,c#,asp.net-mvc-5,windows-authentication,owin,C#,Asp.net Mvc 5,Windows Authentication,Owin,当我使用OWIN即时身份验证时,AccountController上的Request.LogonUserIdentity始终是站点部署到的IIS用户,而不是实际发出请求的用户。这是在服务器上同时启用匿名和Windows身份验证的情况下进行的。如果我关闭匿名访问,那么Request.LogonUserIdentity就是我所期望的 根据数据库设置,我想对同一服务器上的第三方系统执行Windows登录,这意味着我需要模拟发出HTTP请求的用户,但我还需要允许匿名登录的选项。但是,因为该用户始终是II

当我使用OWIN即时身份验证时,AccountController上的Request.LogonUserIdentity始终是站点部署到的IIS用户,而不是实际发出请求的用户。这是在服务器上同时启用匿名和Windows身份验证的情况下进行的。如果我关闭匿名访问,那么Request.LogonUserIdentity就是我所期望的

根据数据库设置,我想对同一服务器上的第三方系统执行Windows登录,这意味着我需要模拟发出HTTP请求的用户,但我还需要允许匿名登录的选项。但是,因为该用户始终是IIS用户,所以这不起作用。在身份验证过程中,是否有某种方式可以访问此时发出请求的实际用户?还是需要实现某种类型的处理程序来预处理原始请求


我不知道从哪里开始。任何朝着正确方向推进的帮助都会非常有帮助。

我能够使用本项目中的技术拼凑出一个相当不错的实现。

有没有一种不使用会话的方法来做到这一点?我正试图在WebAPI上实现它。@Yash是的!看看新的OWIN混合认证棒。看起来你有更新了。可以肯定的是,如果我不使用ASP.NET标识(Identity DbContext等),这会起作用吗。用户数据持久性由自己的BL处理,我使用Owin IAAuthenticationManager来设置cookies。@Yash这是应该的!它的行为与任何其他供应商相同,您可以测试,如果您遇到任何问题!欢迎在回购协议上发行新的债券。@CiaranGallagher不幸的是,没有。我几年前写的专有代码,我已经无法访问了。你看过这个吗?据我回忆,这似乎与我所做的非常相似。