通过 NTLM 模拟用户
我有一个内部应用程序,有两个安全级别。 用于面向客户端的应用程序的 FormsAuthentication 和用于管理界面的 NTLM 集成身份验证。
我可以通过使用 FormsAuthentication 类的方法创建正确的 .ASPXAUTH cookie 来轻松模拟客户端。 然而,到目前为止,为 NTLM 生成 HTTP 身份验证标头超出了我的能力范围。
当我发现这篇文章时,我满怀希望 (http://msdn. microsoft.com/en-us/library/ms998358.aspx#paght000025_usingimpersonation),但后来我意识到它只是创建一个上下文来在请求期间运行代码。 我想切换整个会话,使服务器认为我正在使用另一个域登录。 我对我的帐户拥有管理权限,因此这不是为了搞砸或窃取域密码。
有可能吗? 谢谢。
I have an internal application which has two levels of security. FormsAuthentication for client-facing application and NTLM Integrated authentication for management interface.
I can easily impersonate clients by just creating the proper .ASPXAUTH cookie with the FormsAuthentication class' methods. However generating HTTP Authentication header for NTLM is beyond me so far.
I had my hopes up when I found this article (http://msdn.microsoft.com/en-us/library/ms998358.aspx#paght000025_usingimpersonation) but then I realized that it only creates a context to run code in for a duration of the request. And I would like to switch my entire session to make the server think I'm using another domain login. I have administrative privileges on my account, so it's not for the purpose of screwing around or stealing domain passwords.
Is it even possible? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您有启用表单身份验证的 ASP.NET 应用程序,其中包含登录表单 login.aspx,并且您的用户存储在数据库中。 现在您希望同时支持表单和 Windows 身份验证。 这就是我所做的:
对于表单身份验证,我使用 SQL DB 和用户表。 我向该表添加名为 WindowsUserName 的新列,其中我将以 COMPUTER\User 形式保存 Windows 用户名 在
login.aspx 形式中,我添加一个方法,该方法将发送一个显示登录窗口的响应:
在某处我有一个类似的链接
Admin
在login.aspx Page_Load中我添加了:
GetUserIdForWindowsUser 和 GetApplicationUser 是我的方法,仅供示例。
Let say you have Forms authentication enabled ASP.NET app with login form login.aspx and your users are stored in DB. Now you'd like to support both, Forms and Windows authentication. That's what I do:
For forms auth I use SQL DB with, let say, Users table. I add to this table new column named WindowsUserName in which I'll save Windows user's name in form COMPUTER\User
In login.aspx form I add a method, which will send a response that will shows login window:
Somewhere I have a link like
<a href="login.aspx?use=windows">Admin</a>
In login.aspx Page_Load I have added:
GetUserIdForWindowsUser and GetApplicationUser are my methods just for sample.