在认证ASP.net

时间:2017-02-26 16:04:30

标签: asp.net vb.net authentication

亲爱的stackoverflow社区,

甚至在验证之前有没有办法检索Windows用户名/身份?

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

涉及:

  • Index.aspx
  • HomePage.aspx
  • 的Login.aspx
  • Global.asax中

申请流程:

  1. 输入global.asax并检查isAuthenticated是否为true或 false,如果为false,则输入Index.aspx,如果为true,则提取所有用户 访问.isInroles
  2. 如果未经过身份验证,请获取Windows用户名,检查用户 存在于应用程序中,和 FormsAuthentication.RedirectFromLoginPage(username, False/True) 它将重定向到global.asax并重定向到主页。 (这个 是单点登录的地方。如果没有它的身份 将返回Login.aspx页面。
  3. 用户提供用户名和密码,并像平常一样进行身份验证。 (这个有效)
  4. 问题是,当您使用表单身份验证时,身份将返回空白,直到用户提供。例如HttpContext.Current.User.Identity.Name等等。在认证之前有没有办法获得Windows身份?

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

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

1 个答案:

答案 0 :(得分:0)

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