【问题标题】:Get windows identity before authentication ASP.net在身份验证 ASP.net 之前获取 Windows 身份
【发布时间】:2017-02-26 16:04:30
【问题描述】:

尊敬的 stackoverflow 社区,

是否有任何方法可以在身份验证之前检索 Windows 用户名/身份?

为了让大家了解情况,我目前正在迁移一个旧的 ASP.net 应用程序。以前的代码工作没有问题,但由于最近的代码迁移,旧代码将不再工作。我希望这个应用程序是单点登录,而不是用户需要在使用表单身份验证方法时键入他们的用户名和密码。

涉及到:

  • 索引.aspx
  • 主页.aspx
  • 登录.aspx
  • Global.asax

申请流程:

  1. 输入 global.asax 并检查 isAuthenticated 是否为 true 或 false,如果为假,则输入Index.aspx,如果为真,则提取所有用户 .isInroles 的访问权限
  2. 如果没有认证,获取windows用户名,检查用户 存在于应用程序中,并且 FormsAuthentication.RedirectFromLoginPage(username, False/True) 它将重定向到 global.asax 并重定向到主页。 (这 应该是单点登录的地方。如果没有身份 将返回 Login.aspx 页面。
  3. 用户提供用户名和密码并像往常一样进行身份验证。 (这个有效)

问题是,当您使用表单身份验证时,身份将返回空白,直到用户提供身份。例如HttpContext.Current.User.Identity.Name 和其他一些。有什么方法可以在认证前获取windows的身份吗?

如果我将 web.config 更改为 windows 身份验证,它可以正常工作,但它需要我更改系统的整个结构,因为系统使用 cookie 授予访问权限的方式已经过时了。IsInRoles 和我的团队赢了t 同意,因为过程耗时。抱歉,由于数据机密性,我无法发布代码 sn-p...

任何逻辑/伪代码建议都会很棒。

【问题讨论】:

    标签: asp.net vb.net authentication


    【解决方案1】:

    这个问题的答案,我使用 Windows 身份验证重新构建了整个程序身份验证,并删除了当前的 global.asax 并替换为新的,因为如果我在中注释整个代码,之前的 global.asax 已损坏它输入的 global.asax。这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 2010-09-29
      • 1970-01-01
      相关资源
      最近更新 更多