在ASP.net Core Wep Api中动态地选择认证方案
我正在将使用OWIN和.NET框架构建的自托管Web API移植到ASP.NET Core Web API(使用.NET 6.0) 在原始API中,我有一个自定义身份验证机制,可以根据请求中的标头动态地为每个调用选择身份验证方案: HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"]; listener.AuthenticationSchemeSelectorDelegate = new AuthenticationSchemeSelector((httpRequest) => { if(httpRequest.Headers.AllKeys.Any(k => k == "MyCustomHeader")) { return AuthenticationSchemes.Ntlm; } else {
使用表单验证获得Windows用户名的更好方法?
我继承了一个使用表单身份验证的项目,但是最近的功能请求要求我获取某些用户的Windows用户名. 这是一个使用表单身份验证的网站(而且我不想更改此验证,此时的工作太多了),但是我已经有一个功能请求,可以让我们的内部用户更轻松地登录(通常没有输入密码或用户名). 我当前的方法很可怕,它涉及检查IP地址以查看它们是否从我们的IPS连接(如果是),将它们重定向到使用Windows身份验证的单独项目,然后将它们重定向到原始页面上带有包含其用户名的查询字符串(如果我被迫使用此方法,我可能需要加密此内容,尽管它仍然不如我想要的那样安全). 我可以在应用程序中相对容易地执行Windows身份验证,但是很难获得Windows用户名.我不知道该怎么做,因此我非常丑陋的方法. 任何帮助将不胜感激. 编辑:我的辅助应用程序仅此操作: string username = HttpContext.Current.User.Identity.Name; string retpat
0 2024-04-16
编程技术问答社区
我如何在有多个域的ASP.NET MVC4应用程序中允许Windows认证?
在MVC4应用程序中有关Windows auth的两个问题: 如何设置它,以便我可以针对两个Windows域进行身份验证? 我要做的事情: [Authorize(Roles = @"DOMAINONE\Group Name")] public class HomeController : Controller { public ActionResult Index() { return View(); } ... } 和其他域: [Authorize(Roles = @"DOMAINTWO\Group Name")] public class StaffController : Controller { public ActionResult Index() { return View(); } ... } 是否有一种方法可以在页面上登录屏幕,而不是弹出窗口要求
0 2024-04-16
编程技术问答社区
使用ASP.NET应用程序检测用户在计算机上的登录情况
我想开发一个可以检测到窗口域上登录的用户的ASP.NET应用程序.这些凭据将用于登录ASP.NET应用程序. 我该怎么做? 谢谢! 解决方案 在IIS中,打开集成的Windows身份验证,在代码中,如果使用: Request.ServerVariables["LOGON_USER"] 它将返回用户登录的Windows用户名,即mydomain \ myusername 其他解决方案 这是C#代码我用来对Active Directory进行身份验证 using System; using System.DirectoryServices; namespace XYZcompany.Enterprise { public class AuthenicationMgr { private static readonly int AD_ERR_LOGON_FAIL = -2147023570; private static r
0 2024-04-16
编程技术问答社区
验证当前认证的windows用户是否有授权权限
鉴于我使用Windows Authentication有WCF服务,我想模仿它们并致电另一个WCF服务,例如: using (ServiceSecurityContext.Current.WindowsIdentity.Impersonate()) { // call another WCF service } 我已经设置了所有配置设置,并且可以正常工作,只要在客户端,它们都包括以下行: client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation; 但是,在尝试调用用户令牌具有授权权利之前,我该如何验证?即我不控制的客户设置了允许的人? 如果他们没有设置它,各种奇怪的例外都会被抛弃(就像无法加载汇编x等). . 理想情况下,我希望能够做以下操作: using (ServiceSecurityContext.Cu
0 2024-04-16
编程技术问答社区
Windows认证在IIS和ASP.NET Core上不工作
我正在尝试将Windows身份验证用于ASP.NET Core MVC应用程序. 以下是问题语句. 使用iisexpress运行应用程序时,它将没有任何问题运行.但是,当它在IIS中配置为网站并运行时,它会提示获得凭据,甚至在输入校正后的凭据应用程序显示出错误页面,带有状态401. 详细信息: 应用程序是启用Windows身份验证的普通锅炉板ASP.NET Core MVC应用程序.我正在尝试找到用于实际应用的解决方案. 框架:.NET Core 2.2 环境:Windows Server 2019上的Visual Studio 2019,带有IIS 10.0 以下是我在锅炉板应用中所做的更改. 更改startup.cs文件以使用身份验证. public void ConfigureServices(IServiceCollection services) { services.Configure(op
0 2024-04-16
编程技术问答社区
避免客户端>网络服务>SQL服务器的双跳的解决方案
我的项目会增强从客户端连接到Web服务的用户,然后再使用Web服务到SQL Server. Web服务和SQL Server在单独的计算机上.由于安全要求,我们无法在SQL Server中使用混合模式,只有Windows身份验证. 我们正在遇到Web Service和SQL Server之间的"双跳"问题.我们正在使用NTLM身份验证,并且由于开销和学习曲线而进行不想配置Kerberos.我们也不想在同一台计算机上拥有Web服务和SQL Server. 据我了解,我们所有的要求都无法解决这种情况.但是,开发人员提出了这个建议: 1)通过SSL加密将Windows用户名和密码从客户端发送到Web服务 2)以某种方式将Windows用户名和密码转换为可以通过SQL Server验证的安全令牌 进行类比,听起来我们将在连接到SQL Server时在C#代码中进行runas. Web服务不会使用SQL Server进行身份验证. 我的问题: 1)提出的解
0 2024-04-16
编程技术问答社区
在asp.net中用c#使用windows认证
我试图了解Windows身份验证的工作原理以及如何实现它.我阅读了很多文章,并在YouTube上观看了一些很长的视频,但我仍然无法围绕需要添加到我的web.config file/index.aspx页面以使其正常工作. 这是index.aspx页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Configuration; using System.Data; namespace asset_management_system { public partial class index1 : System.Web.UI.Page { DataA
0 2024-04-15
编程技术问答社区
HttpContext.Current.User在启用Windows验证时未被填充
我使用Windows身份验证具有ASP.NET Intranet应用程序.几年前,我使用VS 2005创建了该应用程序,Windows身份验证位效果很好.我的web.config具有以下(内部配置 - > system.web element): 我在Firefox中对此进行了测试,以确认需要凭据,实际上,我在第一次访问网站时会提示我的网络凭据,并且我拒绝它们是否无效. 但是,当我尝试访问httpcontext.current.user.identities时,该对象具有空名称和authenticationType的字符串,并且AuthenticationType = authenticated = false.我以为我可能需要在围绕Interwebs浏览witch
0 2024-04-14
编程技术问答社区
用C#语言以非root用户身份连接到MySQL数据库?
让我首先说我是数据库的新手,但是我一直在阅读他们的MySQL教程. 现在,我正在尝试制作一个应用程序,该应用程序允许无私人用户(非根)通过C#GUI应用在数据库上连接并执行一些命令.用户将使用Windows身份验证登录到数据库. 现在,我能够制作一个快速的GUI,运行该程序的人可以使用" root"在本地主机上连接到数据库,并获取其中的任何内容. 我的问题是,我如何允许用户连接无根特权?我唯一能够找到所有与" root"作为用户的连接字符串的内容. 编辑:数据库已经制作.我个人将无法作为root用户与其他用户的权限联系. 解决方案 表中所示的表中的行也有一些重要的概念: select user,host,password from mysql.user where user='pfinferno'; 重要的要点,用户可以拥有多个主机名或通配符.每个都有自己的权利和密码.尽管上述密码是哈希的,但至少您可以快速眼球,因此查看所有密码是否匹配(例如,与
0 2024-04-14
编程技术问答社区
应用池身份与冒名顶替身份?
我只发现了一个与此有关的线程,但没有回答这个问题. 我很好奇通过Web.config中设置模拟用户与设置IIS中的应用程序池身份之间的差异.它们似乎是独立的,并且对详细差异感到困惑.谢谢. 解决方案 在web.config中使用模仿允许您覆盖应用程序下运行的应用程序池配置的任何身份 - 这只是控制身份的一种更细的粒度方法(在应用程序级别上,vs.级别),因此您可以在同一AppPool上运行两个应用程序,但是其中一个使用模仿使用其他身份.
0 2024-04-13
编程技术问答社区
Windows身份验证的ASP.NET核心身份
我正在使用.NET Core 3.0 Preview6. 我们有一个具有启用Windows身份验证的Intranet应用程序,这意味着只允许有效的广告用户使用该应用程序. 但是,我们喜欢使用ASP.NET身份来运行自己的身份验证后端,因为它可以在"开箱即用".我刚刚在用户的Windows登录的Aspnetusers表中添加了一列. 我想完成的是Windows用户自动使用Windows登录的应用程序登录. 我已经创建了自定义身份验证中间件,请参阅下面的代码: public class AutoLoginMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger; public AutoLoginMiddleware(RequestDelegate next, ILogger logger)
2 2024-04-13
编程技术问答社区
在Windows认证中使用fiddler
我正在测试我们的应用程序的一些代理设置,但是我需要测试一个需要Windows身份验证(或网络凭据)的代理. 用于测试,我将代理的凭据分配给网络凭据 System.Net.WebProxy proxy = new System.Net.WebProxy("127.0.0.1", 8888); proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; //proxy.Credentials = new System.Net.NetworkCredential("1", "1"); System.Net.WebRequest.DefaultWebProxy = proxy; 当前,我将Fiddler与Require Proxy Authentication规则打开.我如何配置提琴手,以便可以使用Windows凭据而不是默认的" 1"/" 1"凭据? 解决方案 在提琴手4.6中,我可
0 2024-04-13
编程技术问答社区
Windows认证在本地IIS 7.5上不起作用。错误401.1
我最近遇到了一个令人讨厌的问题,可以将Windows身份验证在IIS 7.5(Windows 7 Pro)的本地实例上工作,以便使用ASP.NET 4.0站点.我遵循了基本步骤. iis身份验证 禁用匿名身份验证 启用Windows身份验证 编辑web.config 这在启用Windows身份验证方面做得很好,但是每次登录的尝试都被拒绝,并最终返回了401.1错误.这是问题开始的地方.似乎有很多原因在网络周围记录在网络上,包括堆栈溢出. 我尝试了: 编辑IIS身份验证"高级设置",以禁用扩展保护和内核模式身份验证 编辑IIS身份验证"提供商"将NTLM提在谈判之上. 编辑IIS .NET授权规则以说明允许用户(以及其他各种组合). 各种IIS命令行脚本和调整. Web.config文件中的各种配置调整. 即使是某些文件系统权限. 但无济于事,可怕的401.1仍然存
0 2024-04-13
编程技术问答社区
WCF服务,Windows认证
我们写了一项WCF服务,该服务部署在IIS上.我们选择了集成的Windows身份验证.在这种情况下不能使用服务,但是如果我们可以将IIS虚拟目录的身份验证方法设置为WCF服务的"匿名",则错误将消失.但是,对于我们的WCF服务,"匿名"是不可接受的.我们必须使用集成的Windows身份验证来验证客户端.有人知道如何解决此问题吗? 预先感谢 ashish 解决方案 您必须做一些事情: 从您的Virtual Forlder取消选中匿名访问并检查集成的Windows安全性. 创建以下绑定配置:
0 2024-04-13
编程技术问答社区
如何在asp.net中使用Windows认证获取用户名?
我想使用Windows Authentication获取用户名 实际上,我实现了"登录不同的用户",当单击此按钮Windows安全性时,我们可以给出凭据. 在那段时间里,如果我给出其他凭据,它仅命令当前的用户名. 如何从Windows Security获取给定的凭据用户名? 主机在IIS中的应用程序,然后匿名身份验证已禁用并启用了Windows身份验证. web.config:
0 2024-04-12
编程技术问答社区
认证失败,因为远程方在从webservice获取响应时关闭了传输流异常
我正在呼叫第三方服务,当我要求回复时,它会引发一个例外,说 "身份验证失败,因为远程方已关闭运输流异常". 我认为发送凭据存在问题.我什至尝试提供新的凭据.这是完整的代码 string get_url = "https://**.*******.com/com/******/webservices/public_webservice.cfc?wsdl&Method=CreateUser&SiteID=**&WSPassword=******&UserName=******"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(get_url); request.MaximumAutomaticRedirections = 4; request.MaximumResponseHeadersLength = 4; request.Credentials = CredentialCache.DefaultCr
0 2024-04-12
编程技术问答社区
没有OWIN认证管理器与请求相关联。
尝试将OWIN和ASPNET身份启用到我的Web API项目(在VS 2013 + .NET 4.5.1中)后,我在每个有效或unvalid(请求none none contranter)请求中会遇到以下错误: An error has occurred. No OWIN authentication manager is associated with the request. System.InvalidOperationException at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestM
0 2024-04-12
编程技术问答社区
如何将Windows认证凭证从客户端传递给Web API服务
在我的公司环境中,我有IIS7.5托管Web API服务和一个单独的网站,该网站通过RestSharp库拨打该服务.当前都配置了Windows身份验证. 如果我带有浏览器的一个,请提示我输入Windows凭据,一切都很好...我得到了我想要的网页,其余服务吐出了我的数据.我要努力弄清楚的部分是如何使用单个凭证对认证.我无法弄清楚如何将网站的凭据传递给服务(我尝试模仿但没有起作用),或者手动提示用户获取用户名/密码,然后用" Windows"对它们进行认证. 帮助菜鸟? 解决方案 如果您在网站上使用模仿,并且API在同一服务器上运行. http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx 但是,如果您将API移至网站的其他服务器,这将停止工作.两个服务器设置需要Kerberos委派. 其他解决方案 Web API的设置 启用Windows Authentication
0 2024-04-12
编程技术问答社区